소스 검색

Merge branch 'i40e'

Aaron Brown says:

====================
Intel Wired LAN Driver Updates

This series contains updates to i40e that are primarily minor fixes or
general cleanup.

Shannon fixes a bug where the VMDq queue is not associated with the
right setup within the hardware.

Mitch provides a patch adjusting where the VF is reset and another
one adding meaningful context to a message.

Jesse cleans up white space comments and parenthesis.

Catherine bumps the version.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
David S. Miller 11 년 전
부모
커밋
e1f7dedceb

+ 0 - 0
drivers/net/ethernet/intel/i40e/Module.symvers


+ 0 - 1
drivers/net/ethernet/intel/i40e/i40e.h

@@ -93,7 +93,6 @@
 #define I40E_CURRENT_NVM_VERSION_HI 0x2
 #define I40E_CURRENT_NVM_VERSION_HI 0x2
 #define I40E_CURRENT_NVM_VERSION_LO 0x30
 #define I40E_CURRENT_NVM_VERSION_LO 0x30
 
 
-
 /* magic for getting defines into strings */
 /* magic for getting defines into strings */
 #define STRINGIFY(foo)  #foo
 #define STRINGIFY(foo)  #foo
 #define XSTRINGIFY(bar) STRINGIFY(bar)
 #define XSTRINGIFY(bar) STRINGIFY(bar)

+ 2 - 2
drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h

@@ -1195,8 +1195,8 @@ struct i40e_aqc_add_remove_cloud_filters_element_data {
 		} v4;
 		} v4;
 		struct {
 		struct {
 			u8 data[16];
 			u8 data[16];
-			} v6;
-		} ipaddr;
+		} v6;
+	} ipaddr;
 	__le16 flags;
 	__le16 flags;
 #define I40E_AQC_ADD_CLOUD_FILTER_SHIFT                 0
 #define I40E_AQC_ADD_CLOUD_FILTER_SHIFT                 0
 #define I40E_AQC_ADD_CLOUD_FILTER_MASK                  (0x3F << \
 #define I40E_AQC_ADD_CLOUD_FILTER_MASK                  (0x3F << \

+ 0 - 1
drivers/net/ethernet/intel/i40e/i40e_common.c

@@ -162,7 +162,6 @@ i40e_status i40e_aq_queue_shutdown(struct i40e_hw *hw,
 	return status;
 	return status;
 }
 }
 
 
-
 /**
 /**
  * i40e_init_shared_code - Initialize the shared code
  * i40e_init_shared_code - Initialize the shared code
  * @hw: pointer to hardware structure
  * @hw: pointer to hardware structure

+ 1 - 2
drivers/net/ethernet/intel/i40e/i40e_lan_hmc.c

@@ -485,8 +485,7 @@ i40e_status i40e_configure_lan_hmc(struct i40e_hw *hw,
 		/* Make one big object, a single SD */
 		/* Make one big object, a single SD */
 		info.count = 1;
 		info.count = 1;
 		ret_code = i40e_create_lan_hmc_object(hw, &info);
 		ret_code = i40e_create_lan_hmc_object(hw, &info);
-		if ((ret_code) &&
-		    (model == I40E_HMC_MODEL_DIRECT_PREFERRED))
+		if (ret_code && (model == I40E_HMC_MODEL_DIRECT_PREFERRED))
 			goto try_type_paged;
 			goto try_type_paged;
 		else if (ret_code)
 		else if (ret_code)
 			goto configure_lan_hmc_out;
 			goto configure_lan_hmc_out;

+ 6 - 4
drivers/net/ethernet/intel/i40e/i40e_main.c

@@ -38,7 +38,7 @@ static const char i40e_driver_string[] =
 
 
 #define DRV_VERSION_MAJOR 0
 #define DRV_VERSION_MAJOR 0
 #define DRV_VERSION_MINOR 3
 #define DRV_VERSION_MINOR 3
-#define DRV_VERSION_BUILD 28
+#define DRV_VERSION_BUILD 30
 #define DRV_VERSION __stringify(DRV_VERSION_MAJOR) "." \
 #define DRV_VERSION __stringify(DRV_VERSION_MAJOR) "." \
 	     __stringify(DRV_VERSION_MINOR) "." \
 	     __stringify(DRV_VERSION_MINOR) "." \
 	     __stringify(DRV_VERSION_BUILD)    DRV_KERN
 	     __stringify(DRV_VERSION_BUILD)    DRV_KERN
@@ -356,7 +356,6 @@ static struct rtnl_link_stats64 *i40e_get_netdev_stats_struct(
 	struct rtnl_link_stats64 *vsi_stats = i40e_get_vsi_stats_struct(vsi);
 	struct rtnl_link_stats64 *vsi_stats = i40e_get_vsi_stats_struct(vsi);
 	int i;
 	int i;
 
 
-
 	if (test_bit(__I40E_DOWN, &vsi->state))
 	if (test_bit(__I40E_DOWN, &vsi->state))
 		return stats;
 		return stats;
 
 
@@ -2206,7 +2205,10 @@ static int i40e_configure_tx_ring(struct i40e_ring *ring)
 	}
 	}
 
 
 	/* Now associate this queue with this PCI function */
 	/* Now associate this queue with this PCI function */
-	qtx_ctl = I40E_QTX_CTL_PF_QUEUE;
+	if (vsi->type == I40E_VSI_VMDQ2)
+		qtx_ctl = I40E_QTX_CTL_VM_QUEUE;
+	else
+		qtx_ctl = I40E_QTX_CTL_PF_QUEUE;
 	qtx_ctl |= ((hw->pf_id << I40E_QTX_CTL_PF_INDX_SHIFT) &
 	qtx_ctl |= ((hw->pf_id << I40E_QTX_CTL_PF_INDX_SHIFT) &
 		    I40E_QTX_CTL_PF_INDX_MASK);
 		    I40E_QTX_CTL_PF_INDX_MASK);
 	wr32(hw, I40E_QTX_CTL(pf_q), qtx_ctl);
 	wr32(hw, I40E_QTX_CTL(pf_q), qtx_ctl);
@@ -3600,7 +3602,7 @@ static int i40e_vsi_get_bw_info(struct i40e_vsi *vsi)
 
 
 	/* Get the VSI level BW configuration per TC */
 	/* Get the VSI level BW configuration per TC */
 	aq_ret = i40e_aq_query_vsi_ets_sla_config(hw, vsi->seid, &bw_ets_config,
 	aq_ret = i40e_aq_query_vsi_ets_sla_config(hw, vsi->seid, &bw_ets_config,
-					          NULL);
+						  NULL);
 	if (aq_ret) {
 	if (aq_ret) {
 		dev_info(&pf->pdev->dev,
 		dev_info(&pf->pdev->dev,
 			 "couldn't get pf vsi ets bw config, err %d, aq_err %d\n",
 			 "couldn't get pf vsi ets bw config, err %d, aq_err %d\n",

+ 2 - 2
drivers/net/ethernet/intel/i40e/i40e_txrx.c

@@ -977,8 +977,8 @@ static int i40e_clean_rx_irq(struct i40e_ring *rx_ring, int budget)
 
 
 	rx_desc = I40E_RX_DESC(rx_ring, i);
 	rx_desc = I40E_RX_DESC(rx_ring, i);
 	qword = le64_to_cpu(rx_desc->wb.qword1.status_error_len);
 	qword = le64_to_cpu(rx_desc->wb.qword1.status_error_len);
-	rx_status = (qword & I40E_RXD_QW1_STATUS_MASK)
-				>> I40E_RXD_QW1_STATUS_SHIFT;
+	rx_status = (qword & I40E_RXD_QW1_STATUS_MASK) >>
+		    I40E_RXD_QW1_STATUS_SHIFT;
 
 
 	while (rx_status & (1 << I40E_RX_DESC_STATUS_DD_SHIFT)) {
 	while (rx_status & (1 << I40E_RX_DESC_STATUS_DD_SHIFT)) {
 		union i40e_rx_desc *next_rxd;
 		union i40e_rx_desc *next_rxd;

+ 1 - 0
drivers/net/ethernet/intel/i40e/i40e_type.h

@@ -75,6 +75,7 @@ typedef void (*I40E_ADMINQ_CALLBACK)(struct i40e_hw *, struct i40e_aq_desc *);
 
 
 /* bitfields for Tx queue mapping in QTX_CTL */
 /* bitfields for Tx queue mapping in QTX_CTL */
 #define I40E_QTX_CTL_VF_QUEUE	0x0
 #define I40E_QTX_CTL_VF_QUEUE	0x0
+#define I40E_QTX_CTL_VM_QUEUE	0x1
 #define I40E_QTX_CTL_PF_QUEUE	0x2
 #define I40E_QTX_CTL_PF_QUEUE	0x2
 
 
 /* debug masks - set these bits in hw->debug_mask to control output */
 /* debug masks - set these bits in hw->debug_mask to control output */

+ 3 - 3
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c

@@ -386,8 +386,8 @@ static int i40e_alloc_vsi_res(struct i40e_vf *vf, enum i40e_vsi_type type)
 		vf->lan_vsi_index = vsi->idx;
 		vf->lan_vsi_index = vsi->idx;
 		vf->lan_vsi_id = vsi->id;
 		vf->lan_vsi_id = vsi->id;
 		dev_info(&pf->pdev->dev,
 		dev_info(&pf->pdev->dev,
-			 "LAN VSI index %d, VSI id %d\n",
-			 vsi->idx, vsi->id);
+			 "VF %d assigned LAN VSI index %d, VSI id %d\n",
+			 vf->vf_id, vsi->idx, vsi->id);
 		/* If the port VLAN has been configured and then the
 		/* If the port VLAN has been configured and then the
 		 * VF driver was removed then the VSI port VLAN
 		 * VF driver was removed then the VSI port VLAN
 		 * configuration was destroyed.  Check if there is
 		 * configuration was destroyed.  Check if there is
@@ -1792,7 +1792,7 @@ int i40e_vc_process_vf_msg(struct i40e_pf *pf, u16 vf_id, u32 v_opcode,
 			local_vf_id, v_opcode, msglen);
 			local_vf_id, v_opcode, msglen);
 		return ret;
 		return ret;
 	}
 	}
-	wr32(hw, I40E_VFGEN_RSTAT1(local_vf_id), I40E_VFR_VFACTIVE);
+
 	switch (v_opcode) {
 	switch (v_opcode) {
 	case I40E_VIRTCHNL_OP_VERSION:
 	case I40E_VIRTCHNL_OP_VERSION:
 		ret = i40e_vc_get_version_msg(vf);
 		ret = i40e_vc_get_version_msg(vf);