mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
net: move fib_rules_unregister() under rtnl lock
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 <[email protected]>
Cc: Thomas Graf <[email protected]>
Signed-off-by: Cong Wang <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
parent
ed785309c9
commit
419df12fb5
6 changed files with 8 additions and 5 deletions
|
|
@ -248,7 +248,9 @@ void __init dn_fib_rules_init(void)
|
|||
|
||||
void __exit dn_fib_rules_cleanup(void)
|
||||
{
|
||||
rtnl_lock();
|
||||
fib_rules_unregister(dn_fib_rules_ops);
|
||||
rtnl_unlock();
|
||||
rcu_barrier();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue