net: fib: fix incorrect call_rcu_bh()
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. Anyway, the call_rcu_bh() use in fib_true is obviously wrong, since some users only assert rcu_read_lock(). 4619.617291: <0> Internal error: Oops: 5 [#1] PREEMPT SMP ARM 114619.622541: <4> Modules linked in: wlan(O) adsprpc [last unloaded: wlan] 114619.628980: <4> CPU: 1 Tainted: G W O (3.4.0-g366f2d7-00028-gde45140 #1) 114619.636427: <4> PC is at leaf_walk_rcu+0x50/0x9c 114619.640761: <4> LR is at fib_route_seq_next+0x58/0x7c ...[ Dmesg snip snip ]... 14620.187747: <0> 5fe0: 405a3cd4 405a3ca0 007207ac 0071c098 80000010 00000012 00000000 00000000 114620.196018: <4> [<c0720ec4>] (leaf_walk_rcu+0x50/0x9c) from [<c07210b0>] (fib_route_seq_next+0x58/0x7c) 114620.205114: <4> [<c07210b0>] (fib_route_seq_next+0x58/0x7c) from [<c01642d8>] (seq_read+0x304/0x498) 114620.213964: <4> [<c01642d8>] (seq_read+0x304/0x498) from [<c018daf8>] (proc_reg_read+0x80/0x98) 114620.222388: <4> [<c018daf8>] (proc_reg_read+0x80/0x98) from [<c0147e90>] (vfs_read+0xa4/0x12c) 114620.230720: <4> [<c0147e90>] (vfs_read+0xa4/0x12c) from [<c0147f4c>] (sys_read+0x34/0x68) 114620.238625: <4> [<c0147f4c>] (sys_read+0x34/0x68) from [<c000e2e0>] (ret_fast_syscall+0x0/0x30) CRs-Fixed: 614067 Change-Id: If493d4873de2ab5fa17e54b451871b4b3d469865 Signed-off-by:Eric Dumazet <edumazet@google.com> Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> Signed-off-by:
David S. Miller <davem@davemloft.net> Git-commit: 0c03eca3 Git-repo: https://www.codeaurora.org/cgit/quic/la/kernel/msm-3.10 Signed-off-by:
Vijaya Kumar T M <vtmuni@codeaurora.org>
Loading
Please sign in to comment