Thread (5 messages) 5 messages, 3 authors, 2013-08-20

Re: 3.11-rc6 genetlink locking fix offends lockdep

From: Johannes Berg <johannes@sipsolutions.net>
Date: 2013-08-20 19:10:33
Also in: lkml, stable

Possibly related (same subject, not in this thread)

On Tue, 2013-08-20 at 21:02 +0200, Johannes Berg wrote:
On Tue, 2013-08-20 at 10:28 +0200, Johannes Berg wrote:
quoted
The only way to fix this that I see right now (that doesn't rewrite the
locking completely) would be to make genetlink use parallel_ops itself,
thereby removing the genl_lock() in genl_rcv_msg() and breaking all
those lock chains that lockdep reported. After that, it should be safe
to use genl_lock() inside all the operations. Something like the patch
below, perhaps? Completely untested so far.
Tested now, and it still causes lockdep to complain, though that's a
lockdep issue I believe, it thinks that genl_mutex and nlk->cb_mutex can
be inverted although nlk->cb_mutex exists per family, so we need to
annotate lockdep there.
No, lockdep is correct - generic netlink uses the same cb_mutex for all
families, obviously, since it's all the same netlink family.

I'll just convert it to RCU.

johannes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help