Revision 419df12fb5fa558451319276838c1842f2b11f8f authored by WANG Cong on 31 March 2015, 18:01:46 UTC, committed by David S. Miller on 03 April 2015, 00:52:34 UTC
We have to hold rtnl lock for fib_rules_unregister()
otherwise the following race could happen:

fib_rules_unregister():	fib_nl_delrule():
...				...
...				ops = lookup_rules_ops();
list_del_rcu(&ops->list);
				list_for_each_entry(ops->rules) {
fib_rules_cleanup_ops(ops);	  ...
  list_del_rcu();		  list_del_rcu();
				}

Note, net->rules_mod_lock is actually not needed at all,
either upper layer netns code or rtnl lock guarantees
we are safe.

Cc: Alexander Duyck <alexander.h.duyck@redhat.com>
Cc: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent ed78530
History
File Mode Size
Makefile -rw-r--r-- 377 bytes
compat.c -rw-r--r-- 19.1 KB
compat_mq.c -rw-r--r-- 3.9 KB
ipc_sysctl.c -rw-r--r-- 5.4 KB
mq_sysctl.c -rw-r--r-- 2.9 KB
mqueue.c -rw-r--r-- 35.3 KB
msg.c -rw-r--r-- 23.2 KB
msgutil.c -rw-r--r-- 3.6 KB
namespace.c -rw-r--r-- 4.0 KB
sem.c -rw-r--r-- 55.2 KB
shm.c -rw-r--r-- 32.5 KB
syscall.c -rw-r--r-- 2.3 KB
util.c -rw-r--r-- 21.1 KB
util.h -rw-r--r-- 6.4 KB

back to top