mirror_ubuntu-kernels/drivers/net/ethernet/intel/i40evf
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
..
i40e_adminq_cmd.h i40e: Enable cloud filters via tc-flower 2017-10-31 11:13:49 -07:00
i40e_adminq.c i40e: reduce wait time for adminq command completion 2017-04-19 17:38:25 -07:00
i40e_adminq.h i40e: reduce wait time for adminq command completion 2017-04-19 17:38:25 -07:00
i40e_alloc.h
i40e_common.c i40e: Add support for 'ethtool -m' 2017-10-02 12:46:35 -07:00
i40e_devids.h i40evf: Add support for Adaptive Virtual Function 2017-06-01 14:30:02 -07:00
i40e_hmc.h i40e: use BIT and BIT_ULL macros 2015-07-23 05:33:55 -07:00
i40e_lan_hmc.h i40e/i40evf: Big endian fixes for handling HMC 2014-06-26 04:44:57 -07:00
i40e_osdep.h i40evf: remove unnecessary __packed 2017-07-26 03:25:21 -07:00
i40e_prototype.h i40e: Add support for 'ethtool -m' 2017-10-02 12:46:35 -07:00
i40e_register.h i40evf: Remove PF specific register definitions from the VF 2015-08-26 15:05:17 -07:00
i40e_status.h
i40e_trace.h i40e/i40evf: Add tracepoints 2017-04-19 16:47:31 -07:00
i40e_txrx.c i40e/i40evf: Account for frags split over multiple descriptors in check linearize 2018-01-03 08:47:29 -08:00
i40e_txrx.h i40e/i40evf: bundle more descriptors when allocating buffers 2017-10-09 14:27:42 -07:00
i40e_type.h i40e: Retry AQC GetPhyAbilities to overcome I2CRead hangs 2017-10-09 14:32:18 -07:00
i40evf_client.c i40evf: fix client notify of l2 params 2017-11-21 23:37:58 -08:00
i40evf_client.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
i40evf_ethtool.c i40evf: Enable VF to request an alternate queue allocation 2017-10-02 12:46:35 -07:00
i40evf_main.c i40evf: use spinlock to protect (mac|vlan)_filter_list 2018-01-10 12:41:21 -08:00
i40evf_virtchnl.c i40evf: use spinlock to protect (mac|vlan)_filter_list 2018-01-10 12:41:21 -08:00
i40evf.h i40evf: use spinlock to protect (mac|vlan)_filter_list 2018-01-10 12:41:21 -08:00
Makefile i40e/i40evf: Add tracepoints 2017-04-19 16:47:31 -07:00