On Fri, 2022-03-25 at 13:04 +0100, Johannes Berg wrote: > > So we can avoid the potential deadlock in cfg80211 in a few ways: > > 1) export rtnl_lock_unregistering_all() or maybe a variant after > refactoring the two versions, to allow cfg80211 to use it, that way > netdev_run_todo() can never have a non-empty todo list > > 2) export __rtnl_unlock() so cfg80211 can avoid running > netdev_run_todo() in the unlock, personally I like this less because > it might encourage random drivers to use it > > 3) completely rework cfg80211's locking, adding a separate mutex for > the wiphy list so we don't need to acquire the RTNL at all here > (unless the ops need it, but there's no issue if we don't drop it), > something like https://p.sipsolutions.net/27d08e1f5881a793.txt > Note that none of these actually let you do what you wanted - that is acquiring the RTNL in the vendor op itself. johannes