Skip to content

Commit eae93fe

Browse files
committed
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue
Jeff Kirsher says: ==================== Intel Wired LAN Driver Updates 2015-09-28 This series contains updates to i40e, i40evf and igb to resolve issues seen and reported by Red Hat. Kiran moves i40e_get_head() in preparation for the refactor of the Tx timeout logic, so that it can be used in other areas of the driver. Refactored the driver timeout logic by issuing a writeback request via a software interrupt to the hardware the first time the driver detects a hang. This was due to the driver being too aggressive in resetting a hung queue. Shannon adds the GRE protocol to the transmit checksum encoding. Anjali fixes an issue of forcing writeback too often, which caused us to not benefit from NAPI. We now disable force writeback in the clean routine for X710 and XL710 adapters. The X722 adapters do not enable interrupt to force a writeback and benefit from WB_ON_ITR and so force WB is left enabled for those adapters. Fixed a possible deadlock issue where sync_vsi_filters() can be called directly under RTNL or through the timer subtask without RTNL. So update the flow to see if we are already under RTNL before trying to grab it. Stefan Assmann provides a fix for igb where SR-IOV was not getting enabled properly and we ran into a NULL pointer if the max_vfs module parameter is specified. This is prevented by setting the IGB_FLAG_HAS_MSIX bit before calling igb_probe_vfs(). v2: added "i40e: Fix for recursive RTNL lock during PROMISC change" patch to the series, as it resolves another issues seen and reported by Red Hat. ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents 34c2d9f + cbfe360 commit eae93fe

File tree

9 files changed

+296
-355
lines changed

9 files changed

+296
-355
lines changed

drivers/net/ethernet/intel/i40e/i40e.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,6 @@ struct i40e_pf {
243243
struct pci_dev *pdev;
244244
struct i40e_hw hw;
245245
unsigned long state;
246-
unsigned long link_check_timeout;
247246
struct msix_entry *msix_entries;
248247
bool fc_autoneg_status;
249248

@@ -667,7 +666,7 @@ struct i40e_mac_filter *i40e_add_filter(struct i40e_vsi *vsi,
667666
bool is_vf, bool is_netdev);
668667
void i40e_del_filter(struct i40e_vsi *vsi, u8 *macaddr, s16 vlan,
669668
bool is_vf, bool is_netdev);
670-
int i40e_sync_vsi_filters(struct i40e_vsi *vsi);
669+
int i40e_sync_vsi_filters(struct i40e_vsi *vsi, bool grab_rtnl);
671670
struct i40e_vsi *i40e_vsi_setup(struct i40e_pf *pf, u8 type,
672671
u16 uplink, u32 param1);
673672
int i40e_vsi_release(struct i40e_vsi *vsi);

drivers/net/ethernet/intel/i40e/i40e_debugfs.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1146,7 +1146,7 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
11461146
}
11471147

11481148
f = i40e_add_filter(vsi, ma, vlan, false, false);
1149-
ret = i40e_sync_vsi_filters(vsi);
1149+
ret = i40e_sync_vsi_filters(vsi, true);
11501150
if (f && !ret)
11511151
dev_info(&pf->pdev->dev,
11521152
"add macaddr: %pM vlan=%d added to VSI %d\n",
@@ -1183,7 +1183,7 @@ static ssize_t i40e_dbg_command_write(struct file *filp,
11831183
}
11841184

11851185
i40e_del_filter(vsi, ma, vlan, false, false);
1186-
ret = i40e_sync_vsi_filters(vsi);
1186+
ret = i40e_sync_vsi_filters(vsi, true);
11871187
if (!ret)
11881188
dev_info(&pf->pdev->dev,
11891189
"del macaddr: %pM vlan=%d removed from VSI %d\n",

0 commit comments

Comments
 (0)