Re: [PATCH] net: fib: fix incorrect call_rcu_bh()
From: Paul E. McKenney <hidden>
Date: 2012-08-07 16:52:18
On Tue, Aug 07, 2012 at 12:47:11PM +0200, Eric Dumazet wrote:
From: Eric Dumazet <edumazet@google.com> After IP route cache removal, I believe rcu_bh() has very little use and we should remove this RCU variant, since it adds some cycles in fast path.
Do you mean remove all uses of RCU-bh globally and also removing the implementation itself? That would actually be a good thing, from my perspective. Or were you meaning something more localized? Thanx, Paul
quoted hunk ↗ jump to hunk
Anyway, the call_rcu_bh() use in fib_true is obviously wrong, since some users only assert rcu_read_lock(). Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: "Paul E. McKenney" <redacted> --- net/ipv4/fib_trie.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c index f0cdb30..57bd978 100644 --- a/net/ipv4/fib_trie.c +++ b/net/ipv4/fib_trie.c@@ -367,7 +367,7 @@ static void __leaf_free_rcu(struct rcu_head *head) static inline void free_leaf(struct leaf *l) { - call_rcu_bh(&l->rcu, __leaf_free_rcu); + call_rcu(&l->rcu, __leaf_free_rcu); } static inline void free_leaf_info(struct leaf_info *leaf)