From 65ce2c3be5778f06ec782a3e940db4567ef77782 Mon Sep 17 00:00:00 2001 From: "Paul E. McKenney" Date: Tue, 14 Feb 2012 10:12:54 -0800 Subject: [PATCH] --- yaml --- r: 288585 b: refs/heads/master c: c3ce910b1456a45fa88959af3735bd6b285e54af h: refs/heads/master i: 288583: 54d13724d2acec10f0e5e0047e5cf4b66a031382 v: v3 --- [refs] | 2 +- trunk/kernel/rcutree_plugin.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 688a418524b5..f76b074677d3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8a2ecf474d3ee8dd5d001490349e422cec52f39f +refs/heads/master: c3ce910b1456a45fa88959af3735bd6b285e54af diff --git a/trunk/kernel/rcutree_plugin.h b/trunk/kernel/rcutree_plugin.h index f7ceadf4986e..392a65136a72 100644 --- a/trunk/kernel/rcutree_plugin.h +++ b/trunk/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;