From: Edward Cree <ec...@solarflare.com> Date: Tue, 27 Mar 2018 17:40:11 +0100
> The use of a spinlock to protect filter state combined with the need for a > sleeping operation (MCDI) to apply that state to the NIC (on EF10) led to > unfixable race conditions, around the handling of filter restoration after > an MC reboot. > So, this patch series removes the requirement to be able to modify the SW > filter table from atomic context, by using a workqueue to request > asynchronous filter operations (which are needed for ARFS). Then, the > filter table locks are changed to mutexes, replacing the dance of spinlocks > and 'busy' flags. Also, a mutex is added to protect the RSS context state, > since otherwise a similar race is possible around restoring that after an > MC reboot. While we're at it, fix a couple of other related bugs. Series applied, thank you.