fa797f4e30
[ Upstream commit d8c40b9d3a6cef61eb5a0c58c34a3090ea938d89 ]
Consider the following scenario:
.ndo_bpf() | ice_prepare_for_reset() |
________________________|_______________________________________|
rtnl_lock() | |
ice_down() | |
| test_bit(ICE_VSI_DOWN) - true |
| ice_dis_vsi() returns |
ice_up() | |
| proceeds to rebuild a running VSI |
.ndo_bpf() is not the only rtnl-locked callback that toggles the interface
to apply new configuration. Another example is .set_channels().
To avoid the race condition above, act only after reading ICE_VSI_DOWN
under rtnl_lock.
Fixes:
|
||
---|---|---|
.. | ||
e1000 | ||
e1000e | ||
fm10k | ||
i40e | ||
iavf | ||
ice | ||
igb | ||
igbvf | ||
igc | ||
ixgb | ||
ixgbe | ||
ixgbevf | ||
Kconfig | ||
Makefile | ||
e100.c |