aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2017-11-28 09:52:04 -0500
committerDavid S. Miller <davem@davemloft.net>2017-11-28 09:52:04 -0500
commit32f0160c0373ab6381594462b2533104e21626d4 (patch)
treeb1f9a7c1b9dd900e3c75fba757c9b03e836ae4cb
parent2e724dca7749223204bbae21745c0e3fc932700a (diff)
parent8abd20b458cafd4c4e632fe7fb8f1a9861b02ee0 (diff)
Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-queue
Jeff Kirsher says: ==================== Intel Wired LAN Driver Updates 2017-11-27 This series contains updates to e1000, e1000e and i40e. Gustavo A. R. Silva fixes a sizeof() issue where we were taking the size of the pointer (which is always the size of the pointer). Sasha does a follow up fix to a previous fix for buffer overrun, to resolve community feedback from David Laight and the use of magic numbers. Amritha fixes the reporting of error codes for when adding a cloud filter fails. Ahmad Fatoum brushes the dust off the e1000 driver to fix a code comment and debug message which was incorrect about what the code was really doing. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/intel/e1000/e1000_hw.c6
-rw-r--r--drivers/net/ethernet/intel/e1000e/ich8lan.h3
-rw-r--r--drivers/net/ethernet/intel/e1000e/netdev.c9
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_main.c1
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c2
5 files changed, 13 insertions, 8 deletions
diff --git a/drivers/net/ethernet/intel/e1000/e1000_hw.c b/drivers/net/ethernet/intel/e1000/e1000_hw.c
index 8172cf08cc33..3bac9df1c099 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_hw.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_hw.c
@@ -4307,8 +4307,10 @@ static void e1000_init_rx_addrs(struct e1000_hw *hw)
4307 4307
4308 rar_num = E1000_RAR_ENTRIES; 4308 rar_num = E1000_RAR_ENTRIES;
4309 4309
4310 /* Zero out the other 15 receive addresses. */ 4310 /* Zero out the following 14 receive addresses. RAR[15] is for
4311 e_dbg("Clearing RAR[1-15]\n"); 4311 * manageability
4312 */
4313 e_dbg("Clearing RAR[1-14]\n");
4312 for (i = 1; i < rar_num; i++) { 4314 for (i = 1; i < rar_num; i++) {
4313 E1000_WRITE_REG_ARRAY(hw, RA, (i << 1), 0); 4315 E1000_WRITE_REG_ARRAY(hw, RA, (i << 1), 0);
4314 E1000_WRITE_FLUSH(); 4316 E1000_WRITE_FLUSH();
diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.h b/drivers/net/ethernet/intel/e1000e/ich8lan.h
index 67163ca898ba..00a36df02a3f 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.h
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.h
@@ -113,7 +113,8 @@
113#define NVM_SIZE_MULTIPLIER 4096 /*multiplier for NVMS field */ 113#define NVM_SIZE_MULTIPLIER 4096 /*multiplier for NVMS field */
114#define E1000_FLASH_BASE_ADDR 0xE000 /*offset of NVM access regs */ 114#define E1000_FLASH_BASE_ADDR 0xE000 /*offset of NVM access regs */
115#define E1000_CTRL_EXT_NVMVS 0x3 /*NVM valid sector */ 115#define E1000_CTRL_EXT_NVMVS 0x3 /*NVM valid sector */
116#define E1000_TARC0_CB_MULTIQ_3_REQ (1 << 28 | 1 << 29) 116#define E1000_TARC0_CB_MULTIQ_3_REQ 0x30000000
117#define E1000_TARC0_CB_MULTIQ_2_REQ 0x20000000
117#define PCIE_ICH8_SNOOP_ALL PCIE_NO_SNOOP_ALL 118#define PCIE_ICH8_SNOOP_ALL PCIE_NO_SNOOP_ALL
118 119
119#define E1000_ICH_RAR_ENTRIES 7 120#define E1000_ICH_RAR_ENTRIES 7
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index f2f49239b015..9f18d39bdc8f 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -3034,9 +3034,12 @@ static void e1000_configure_tx(struct e1000_adapter *adapter)
3034 ew32(IOSFPC, reg_val); 3034 ew32(IOSFPC, reg_val);
3035 3035
3036 reg_val = er32(TARC(0)); 3036 reg_val = er32(TARC(0));
3037 /* SPT and KBL Si errata workaround to avoid Tx hang */ 3037 /* SPT and KBL Si errata workaround to avoid Tx hang.
3038 reg_val &= ~BIT(28); 3038 * Dropping the number of outstanding requests from
3039 reg_val |= BIT(29); 3039 * 3 to 2 in order to avoid a buffer overrun.
3040 */
3041 reg_val &= ~E1000_TARC0_CB_MULTIQ_3_REQ;
3042 reg_val |= E1000_TARC0_CB_MULTIQ_2_REQ;
3040 ew32(TARC(0), reg_val); 3043 ew32(TARC(0), reg_val);
3041 } 3044 }
3042} 3045}
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 4c08cc86463e..321d8be80871 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -7401,7 +7401,6 @@ static int i40e_configure_clsflower(struct i40e_vsi *vsi,
7401 dev_err(&pf->pdev->dev, 7401 dev_err(&pf->pdev->dev,
7402 "Failed to add cloud filter, err %s\n", 7402 "Failed to add cloud filter, err %s\n",
7403 i40e_stat_str(&pf->hw, err)); 7403 i40e_stat_str(&pf->hw, err));
7404 err = i40e_aq_rc_to_posix(err, pf->hw.aq.asq_last_status);
7405 goto err; 7404 goto err;
7406 } 7405 }
7407 7406
diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
index a3dc9b932946..36cb8e068e85 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
@@ -2086,7 +2086,7 @@ static int i40e_vc_request_queues_msg(struct i40e_vf *vf, u8 *msg, int msglen)
2086 } 2086 }
2087 2087
2088 return i40e_vc_send_msg_to_vf(vf, VIRTCHNL_OP_REQUEST_QUEUES, 0, 2088 return i40e_vc_send_msg_to_vf(vf, VIRTCHNL_OP_REQUEST_QUEUES, 0,
2089 (u8 *)vfres, sizeof(vfres)); 2089 (u8 *)vfres, sizeof(*vfres));
2090} 2090}
2091 2091
2092/** 2092/**