linux/drivers/net/ethernet/intel
Aleksandr Loktionov 37d318d780 i40e: Remove scheduling while atomic possibility
In some occasions task held spinlock (mac_filter_hash_lock),
while being rescheduled due to admin queue mutex_lock.  The struct
i40e_spinlock asq_spinlock, which later expands to struct mutex
spinlock.  Moved i40e_aq_set_vsi_multicast_promiscuous(),
i40e_aq_set_vsi_unicast_promiscuous(),
i40e_aq_set_vsi_mc_promisc_on_vlan(), and
i40e_aq_set_vsi_uc_promisc_on_vlan() outside of atomic context.  Without
this patch there is a race condition, which might result in scheduling
while in atomic context.  The race condition is between the thread, which
holds mac_filter_hash_lock, while trying to acquire an admin queue mutex
and a thread, which already has said admin queue mutex. The thread, which
holds spinlock, fails to acquire the mutex, which causes this thread to
sleep.

Signed-off-by: Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
Signed-off-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2020-06-25 22:37:03 -07:00
..
e1000 net/intel: remove driver versions from Intel drivers 2020-06-25 22:25:13 -07:00
e1000e net/intel: remove driver versions from Intel drivers 2020-06-25 22:25:13 -07:00
fm10k net/intel: remove driver versions from Intel drivers 2020-06-25 22:25:13 -07:00
i40e i40e: Remove scheduling while atomic possibility 2020-06-25 22:37:03 -07:00
iavf net/intel: remove driver versions from Intel drivers 2020-06-25 22:25:13 -07:00
ice net/intel: remove driver versions from Intel drivers 2020-06-25 22:25:13 -07:00
igb net/intel: remove driver versions from Intel drivers 2020-06-25 22:25:13 -07:00
igbvf net/intel: remove driver versions from Intel drivers 2020-06-25 22:25:13 -07:00
igc net/intel: remove driver versions from Intel drivers 2020-06-25 22:25:13 -07:00
ixgb net/intel: remove driver versions from Intel drivers 2020-06-25 22:25:13 -07:00
ixgbe net/intel: remove driver versions from Intel drivers 2020-06-25 22:25:13 -07:00
ixgbevf net/intel: remove driver versions from Intel drivers 2020-06-25 22:25:13 -07:00
e100.c net/intel: remove driver versions from Intel drivers 2020-06-25 22:25:13 -07:00
Kconfig treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
Makefile igc: Add skeletal frame for Intel(R) 2.5G Ethernet Controller support 2018-10-17 12:14:54 -07:00