diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 967546cca4a6..f3710e78a2b6 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -204,7 +204,12 @@ static void rcu_preempt_qs(int cpu); void rcu_bh_qs(int cpu) { + unsigned long flags; + + /* Callers to this function, rcu_preempt_qs(), must disable irqs. */ + local_irq_save(flags); rcu_preempt_qs(cpu); + local_irq_restore(flags); } #else void rcu_bh_qs(int cpu)