crypto: deadlock between crypto_alg_sem/rtnl_mutex/genl_mutex
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 14 Mar 2017 10:25:57 +0000 (18:25 +0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 21 Mar 2017 21:38:15 +0000 (14:38 -0700)
commit8a0f5ccfb33b0b8b51de65b7b3bf342ba10b4fb6
tree7ee2aabab355f030568c83095f1c13d455e1b564
parent98d068ab52b4b11d403995ed14154660797e7136
crypto: deadlock between crypto_alg_sem/rtnl_mutex/genl_mutex

On Tue, Mar 14, 2017 at 10:44:10AM +0100, Dmitry Vyukov wrote:
>
> Yes, please.
> Disregarding some reports is not a good way long term.

Please try this patch.

---8<---
Subject: netlink: Annotate nlk cb_mutex by protocol

Currently all occurences of nlk->cb_mutex are annotated by lockdep
as a single class.  This causes a false lcokdep cycle involving
genl and crypto_user.

This patch fixes it by dividing cb_mutex into individual classes
based on the netlink protocol.  As genl and crypto_user do not
use the same netlink protocol this breaks the false dependency
loop.

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/netlink/af_netlink.c