net: core: rcu-ify rtnl af_ops
authorFlorian Westphal <fw@strlen.de>
Mon, 16 Oct 2017 13:44:36 +0000 (15:44 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 16 Oct 2017 20:26:40 +0000 (21:26 +0100)
commit5fa85a09390c4a525cb4d06a0c4644b01a47976b
tree83d6e4eee4a33ccd89af13691b484c59489d4f7f
parent070cbf5be7774dcf0ceca081c7321c6f2ae833a4
net: core: rcu-ify rtnl af_ops

rtnl af_ops currently rely on rtnl mutex: unregister (called from module
exit functions) takes the rtnl mutex and all users that do af_ops lookup
also take the rtnl mutex. IOW, parallel rmmod will block until doit()
callback is done.

As none of the af_ops implementation sleep we can use rcu instead.

doit functions that need the af_ops can now use rcu instead of the
rtnl mutex provided the mutex isn't needed for other reasons.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/rtnetlink.c
net/ipv4/devinet.c