]> git.baikalelectronics.ru Git - kernel.git/commit
fib: use atomic_inc_not_zero() in fib_rules_lookup
authorEric Dumazet <eric.dumazet@gmail.com>
Mon, 27 Sep 2010 04:18:27 +0000 (04:18 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 28 Sep 2010 04:30:44 +0000 (21:30 -0700)
commit9c0137dfc47a26df4cdcf6945a4c4db3731867e2
treeba618177a1d57189d5f485a5182a96f4e97b971f
parentfa6e393dc5b6e23b1638abe7b53bf0e25f73bea4
fib: use atomic_inc_not_zero() in fib_rules_lookup

It seems we dont use appropriate refcount increment in an
rcu_read_lock() protected section.

fib_rule_get() might increment a null refcount and bad things could
happen.

While fib_nl_delrule() respects an rcu grace period before calling
fib_rule_put(), fib_rules_cleanup_ops() calls fib_rule_put() without a
grace period.

Note : after this patch, we might avoid the synchronize_rcu() call done
in fib_nl_delrule()

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/fib_rules.c