On 3/21/2022 1:07 PM, Johannes Berg wrote:
[..snip..]
I'm not an networking expert. So my main question is if I'm allowed to take
the RTNL lock inside the nl80211_vendor_cmd callbacks?
Evidently, you're not. It's interesting though, it used to be that we
called these with the RTNL held, now we don't, and the driver you're
using somehow "got fixed" to take it, but whoever fixed it didn't take
into account that this is not possible?
On this point I just want to remind that prior to the locking change
that a driver would specify on a per-vendor command basis whether or not
it wanted the rtnl_lock to be held via NL80211_FLAG_NEED_RTNL. I'm
guessing for the command in question the driver did not set this flag
since the driver wanted to explicitly take the lock itself, otherwise it
would have deadlocked on itself with the 5.10 kernel.
/jeff