From: Debabrata Banerjee <dbane...@akamai.com> Date: Thu, 18 Oct 2018 11:18:26 -0400
> This fixes a problem introduced by: > commit 2cde6acd49da ("netpoll: Fix __netpoll_rcu_free so that it can hold the > rtnl lock") > > When using netconsole on a bond, __netpoll_cleanup can asynchronously > recurse multiple times, each __netpoll_free_async call can result in > more __netpoll_free_async's. This means there is now a race between > cleanup_work queues on multiple netpoll_info's on multiple devices and > the configuration of a new netpoll. For example if a netconsole is set > to enable 0, reconfigured, and enable 1 immediately, this netconsole > will likely not work. > > Given the reason for __netpoll_free_async is it can be called when rtnl > is not locked, if it is locked, we should be able to execute > synchronously. It appears to be locked everywhere it's called from. > > Generalize the design pattern from the teaming driver for current > callers of __netpoll_free_async. > > CC: Neil Horman <nhor...@tuxdriver.com> > CC: "David S. Miller" <da...@davemloft.net> > Signed-off-by: Debabrata Banerjee <dbane...@akamai.com> Applied, thank you.