Commit 350311aa authored by Kirill Tkhai's avatar Kirill Tkhai Committed by David S. Miller

security: Remove rtnl_lock() in selinux_xfrm_notify_policyload()

rt_genid_bump_all() consists of ipv4 and ipv6 part.
ipv4 part is incrementing of net::ipv4::rt_genid,
and I see many places, where it's read without rtnl_lock().

ipv6 part calls __fib6_clean_all(), and it's also
called without rtnl_lock() in other places.

So, rtnl_lock() here was used to iterate net_namespace_list only,
and we can remove it.
Signed-off-by: default avatarKirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 10256deb
...@@ -47,12 +47,10 @@ static inline void selinux_xfrm_notify_policyload(void) ...@@ -47,12 +47,10 @@ static inline void selinux_xfrm_notify_policyload(void)
{ {
struct net *net; struct net *net;
rtnl_lock();
down_read(&net_rwsem); down_read(&net_rwsem);
for_each_net(net) for_each_net(net)
rt_genid_bump_all(net); rt_genid_bump_all(net);
up_read(&net_rwsem); up_read(&net_rwsem);
rtnl_unlock();
} }
#else #else
static inline int selinux_xfrm_enabled(void) static inline int selinux_xfrm_enabled(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment