Commit b3a084b9b684622b149e8dcf03855bf0d5fb588b
Committed by
Paul E. McKenney
1 parent
27c379f7f8
Exists in
master
and in
7 other branches
rcu: rcu_read_lock_bh_held(): disabling irqs also disables bh
rcu_dereference_bh() doesnt know yet about hard irq being disabled, so lockdep can trigger in netpoll_rx() after commit f0f9deae9e7c4 (netpoll: Disable IRQ around RCU dereference in netpoll_rx) Reported-by: Miles Lane <miles.lane@gmail.com> Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Tested-by: Miles Lane <miles.lane@gmail.com> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Showing 1 changed file with 1 additions and 1 deletions Side-by-side Diff
include/linux/rcupdate.h
... | ... | @@ -454,7 +454,7 @@ |
454 | 454 | * Makes rcu_dereference_check() do the dirty work. |
455 | 455 | */ |
456 | 456 | #define rcu_dereference_bh(p) \ |
457 | - rcu_dereference_check(p, rcu_read_lock_bh_held()) | |
457 | + rcu_dereference_check(p, rcu_read_lock_bh_held() || irqs_disabled()) | |
458 | 458 | |
459 | 459 | /** |
460 | 460 | * rcu_dereference_sched - fetch RCU-protected pointer, checking for RCU-sched |