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 f0f9deae9e
(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>
This commit is contained in:
Родитель
27c379f7f8
Коммит
b3a084b9b6
|
@ -454,7 +454,7 @@ static inline notrace void rcu_read_unlock_sched_notrace(void)
|
||||||
* Makes rcu_dereference_check() do the dirty work.
|
* Makes rcu_dereference_check() do the dirty work.
|
||||||
*/
|
*/
|
||||||
#define rcu_dereference_bh(p) \
|
#define rcu_dereference_bh(p) \
|
||||||
rcu_dereference_check(p, rcu_read_lock_bh_held())
|
rcu_dereference_check(p, rcu_read_lock_bh_held() || irqs_disabled())
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* rcu_dereference_sched - fetch RCU-protected pointer, checking for RCU-sched
|
* rcu_dereference_sched - fetch RCU-protected pointer, checking for RCU-sched
|
||||||
|
|
Загрузка…
Ссылка в новой задаче