linux/drivers/net/ethernet/intel
Jacob Keller 504398f0a7 i40evf: use spinlock to protect (mac|vlan)_filter_list
Stop overloading the __I40EVF_IN_CRITICAL_TASK bit lock to protect the
mac_filter_list and vlan_filter_list. Instead, implement a spinlock to
protect these two lists, similar to how we protect the hash in the i40e
PF code.

Ensure that every place where we access the list uses the spinlock to
ensure consistency, and stop holding the critical section around blocks
of code which only need access to the macvlan filter lists.

This refactor helps simplify the locking behavior, and is necessary as
a future refactor to the __I40EVF_IN_CRITICAL_TASK would cause
a deadlock otherwise.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2018-01-10 12:41:21 -08:00
..
e1000 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-01-09 10:37:00 -05:00
e1000e e1000e: Fix e1000_check_for_copper_link_ich8lan return value. 2018-01-02 11:40:00 -08:00
fm10k fm10k: Use smp_rmb rather than read_barrier_depends 2017-11-21 23:48:39 -08:00
i40e i40e: display priority_xon and priority_xoff stats 2018-01-10 12:41:21 -08:00
i40evf i40evf: use spinlock to protect (mac|vlan)_filter_list 2018-01-10 12:41:21 -08:00
igb igb: Use smp_rmb rather than read_barrier_depends 2017-11-21 23:47:24 -08:00
igbvf igbvf: Use smp_rmb rather than read_barrier_depends 2017-11-21 23:46:04 -08:00
ixgb ethernet/intel: Convert timers to use timer_setup() 2017-10-18 12:40:26 +01:00
ixgbe ixgbe: Drop l2_accel_priv data pointer from ring struct 2018-01-09 08:51:33 -08:00
ixgbevf ixgbevf: remove redundant setting of xcast_mode 2018-01-09 08:39:01 -08:00
e100.c ethernet/intel: Convert timers to use timer_setup() 2017-10-18 12:40:26 +01:00
Kconfig i40evf: Add support for Adaptive Virtual Function 2017-06-01 14:30:02 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00