aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcutree.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/rcutree.c')
-rw-r--r--kernel/rcutree.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/rcutree.c b/kernel/rcutree.c
index 011bf6f261a2..195b3a3313e3 100644
--- a/kernel/rcutree.c
+++ b/kernel/rcutree.c
@@ -421,8 +421,9 @@ void rcu_irq_exit(void)
421 WARN_ON_ONCE(rdtp->dynticks & 0x1); 421 WARN_ON_ONCE(rdtp->dynticks & 0x1);
422 422
423 /* If the interrupt queued a callback, get out of dyntick mode. */ 423 /* If the interrupt queued a callback, get out of dyntick mode. */
424 if (__this_cpu_read(rcu_sched_data.nxtlist) || 424 if (in_irq() &&
425 __this_cpu_read(rcu_bh_data.nxtlist)) 425 (__this_cpu_read(rcu_sched_data.nxtlist) ||
426 __this_cpu_read(rcu_bh_data.nxtlist)))
426 set_need_resched(); 427 set_need_resched();
427} 428}
428 429