Message ID | 1329847110-10897-1-git-send-email-paulmck@linux.vnet.ibm.com |
---|---|
State | Accepted |
Commit | c3ce910b1456a45fa88959af3735bd6b285e54af |
Headers | show |
diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h index f7ceadf..392a651 100644 --- a/kernel/rcutree_plugin.h +++ b/kernel/rcutree_plugin.h @@ -2133,7 +2133,8 @@ static void rcu_prepare_for_idle(int cpu) /* First time through, initialize the counter. */ per_cpu(rcu_dyntick_drain, cpu) = RCU_IDLE_FLUSHES; } else if (per_cpu(rcu_dyntick_drain, cpu) <= RCU_IDLE_OPT_FLUSHES && - !rcu_pending(cpu)) { + !rcu_pending(cpu) && + !local_softirq_pending()) { /* Can we go dyntick-idle despite still having callbacks? */ trace_rcu_prep_idle("Dyntick with callbacks"); per_cpu(rcu_dyntick_drain, cpu) = 0;