]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - drivers/net/ethernet/intel/i40e/i40e_fcoe.c
i40e: fix invalid void return in FCoE code
[mirror_ubuntu-bionic-kernel.git] / drivers / net / ethernet / intel / i40e / i40e_fcoe.c
index 27c206e62da71f0159361bca2703a1e367aeffcb..1803afeef23ede81ed906b5400e9f3164234a4de 100644 (file)
@@ -1,7 +1,7 @@
 /*******************************************************************************
  *
  * Intel Ethernet Controller XL710 Family Linux Driver
- * Copyright(c) 2013 - 2014 Intel Corporation.
+ * Copyright(c) 2013 - 2015 Intel Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -24,7 +24,6 @@
  *
  ******************************************************************************/
 
-
 #include <linux/if_ether.h>
 #include <scsi/scsi_cmnd.h>
 #include <scsi/scsi_device.h>
@@ -150,7 +149,7 @@ static inline bool i40e_fcoe_xid_is_valid(u16 xid)
 
 /**
  * i40e_fcoe_ddp_unmap - unmap the mapped sglist associated
- * @pf: pointer to pf
+ * @pf: pointer to PF
  * @ddp: sw DDP context
  *
  * Unmap the scatter-gather list associated with the given SW DDP context
@@ -269,7 +268,7 @@ out:
 
 /**
  * i40e_fcoe_sw_init - sets up the HW for FCoE
- * @pf: pointer to pf
+ * @pf: pointer to PF
  *
  * Returns 0 if FCoE is supported otherwise the error code
  **/
@@ -329,7 +328,7 @@ int i40e_init_pf_fcoe(struct i40e_pf *pf)
 
 /**
  * i40e_get_fcoe_tc_map - Return TC map for FCoE APP
- * @pf: pointer to pf
+ * @pf: pointer to PF
  *
  **/
 u8 i40e_get_fcoe_tc_map(struct i40e_pf *pf)
@@ -381,12 +380,11 @@ int i40e_fcoe_vsi_init(struct i40e_vsi *vsi, struct i40e_vsi_context *ctxt)
        ctxt->pf_num = hw->pf_id;
        ctxt->vf_num = 0;
        ctxt->uplink_seid = vsi->uplink_seid;
-       ctxt->connection_type = 0x1;
+       ctxt->connection_type = I40E_AQ_VSI_CONN_TYPE_NORMAL;
        ctxt->flags = I40E_AQ_VSI_TYPE_PF;
 
        /* FCoE VSI would need the following sections */
-       info->valid_sections |= cpu_to_le16(I40E_AQ_VSI_PROP_SWITCH_VALID |
-                                           I40E_AQ_VSI_PROP_QUEUE_OPT_VALID);
+       info->valid_sections |= cpu_to_le16(I40E_AQ_VSI_PROP_QUEUE_OPT_VALID);
 
        /* FCoE VSI does not need these sections */
        info->valid_sections &= cpu_to_le16(~(I40E_AQ_VSI_PROP_SECURITY_VALID |
@@ -395,7 +393,12 @@ int i40e_fcoe_vsi_init(struct i40e_vsi *vsi, struct i40e_vsi_context *ctxt)
                                            I40E_AQ_VSI_PROP_INGRESS_UP_VALID |
                                            I40E_AQ_VSI_PROP_EGRESS_UP_VALID));
 
-       info->switch_id = cpu_to_le16(I40E_AQ_VSI_SW_ID_FLAG_ALLOW_LB);
+       if (i40e_is_vsi_uplink_mode_veb(vsi)) {
+               info->valid_sections |=
+                               cpu_to_le16(I40E_AQ_VSI_PROP_SWITCH_VALID);
+               info->switch_id =
+                               cpu_to_le16(I40E_AQ_VSI_SW_ID_FLAG_ALLOW_LB);
+       }
        enabled_tc = i40e_get_fcoe_tc_map(pf);
        i40e_vsi_setup_queue_map(vsi, ctxt, enabled_tc, true);
 
@@ -1303,8 +1306,7 @@ static void i40e_fcoe_tx_map(struct i40e_ring *tx_ring,
        /* MACLEN is ether header length in words not bytes */
        td_offset |= (maclen >> 1) << I40E_TX_DESC_LENGTH_MACLEN_SHIFT;
 
-       return i40e_tx_map(tx_ring, skb, first, tx_flags, hdr_len,
-                          td_cmd, td_offset);
+       i40e_tx_map(tx_ring, skb, first, tx_flags, hdr_len, td_cmd, td_offset);
 }
 
 /**
@@ -1443,7 +1445,6 @@ static int i40e_fcoe_set_features(struct net_device *netdev,
        return 0;
 }
 
-
 static const struct net_device_ops i40e_fcoe_netdev_ops = {
        .ndo_open               = i40e_open,
        .ndo_stop               = i40e_close,
@@ -1470,6 +1471,11 @@ static const struct net_device_ops i40e_fcoe_netdev_ops = {
        .ndo_set_features       = i40e_fcoe_set_features,
 };
 
+/* fcoe network device type */
+static struct device_type fcoe_netdev_type = {
+       .name = "fcoe",
+};
+
 /**
  * i40e_fcoe_config_netdev - prepares the VSI context for creating a FCoE VSI
  * @vsi: pointer to the associated VSI struct
@@ -1503,6 +1509,7 @@ void i40e_fcoe_config_netdev(struct net_device *netdev, struct i40e_vsi *vsi)
        strlcpy(netdev->name, "fcoe%d", IFNAMSIZ-1);
        netdev->mtu = FCOE_MTU;
        SET_NETDEV_DEV(netdev, &pf->pdev->dev);
+       SET_NETDEV_DEVTYPE(netdev, &fcoe_netdev_type);
        /* set different dev_port value 1 for FCoE netdev than the default
         * zero dev_port value for PF netdev, this helps biosdevname user
         * tool to differentiate them correctly while both attached to the
@@ -1523,7 +1530,7 @@ void i40e_fcoe_config_netdev(struct net_device *netdev, struct i40e_vsi *vsi)
 
 /**
  * i40e_fcoe_vsi_setup - allocate and set up FCoE VSI
- * @pf: the pf that VSI is associated with
+ * @pf: the PF that VSI is associated with
  *
  **/
 void i40e_fcoe_vsi_setup(struct i40e_pf *pf)
@@ -1550,7 +1557,7 @@ void i40e_fcoe_vsi_setup(struct i40e_pf *pf)
        vsi = i40e_vsi_setup(pf, I40E_VSI_FCOE, seid, 0);
        if (vsi) {
                dev_dbg(&pf->pdev->dev,
-                       "Successfully created FCoE VSI seid %d id %d uplink_seid %d pf seid %d\n",
+                       "Successfully created FCoE VSI seid %d id %d uplink_seid %d PF seid %d\n",
                        vsi->seid, vsi->id, vsi->uplink_seid, seid);
        } else {
                dev_info(&pf->pdev->dev, "Failed to create FCoE VSI\n");