Re: crypto: deadlock between crypto_alg_sem/rtnl_mutex/genl_mutex

From: Sowmini Varadhan
Date: Wed Mar 15 2017 - 07:31:33 EST


On (03/15/17 10:08), Dmitry Vyukov wrote:
> After I've applied the patch these reports stopped to happen, and I
> have not seem any other reports that look relevant.
> However, it there was one, but it looks like a different issue and it
> was probably masked by massive amounts of original deadlock reports:

Yes, this looks like a valid deadlock.

I think there may be some ->dumpit callbacks that take the rtnl_lock
and do not unlock it before return, e.g., I see nl80211_dump_interface()
doing this at

2612 rtnl_lock();
2613 if (!cb->args[2]) {
:
2619 ret = nl80211_dump_wiphy_parse(skb, cb, &state);
2620 if (ret)
2621 return ret;

afaict, nl80211_dump_wiphy_parse does not itself do rtnl_unlock on error.


If that's the case then we'd run into the circular locking dependancy
flagged by lockdep.

Disclaimer: I did not check every single ->dumpit, there may be more
than one of these..