From cb37b467680ebd89144c66a43c726c1843c3e758 Mon Sep 17 00:00:00 2001 From: "Paul E. McKenney" Date: Mon, 16 May 2011 14:27:31 -0700 Subject: [PATCH] --- yaml --- r: 252674 b: refs/heads/master c: 4305ce7894dd38b0633bfc8978437320119223bd h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/kernel/rcutree.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 7ca3f8765373..96c00cf55ed8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b5904090c754327ed6c2ecaefed4f7d473df393f +refs/heads/master: 4305ce7894dd38b0633bfc8978437320119223bd diff --git a/trunk/kernel/rcutree.c b/trunk/kernel/rcutree.c index 195b3a3313e3..99c6038ad04d 100644 --- a/trunk/kernel/rcutree.c +++ b/trunk/kernel/rcutree.c @@ -324,8 +324,8 @@ void rcu_enter_nohz(void) smp_mb(); /* CPUs seeing ++ must see prior RCU read-side crit sects */ local_irq_save(flags); rdtp = &__get_cpu_var(rcu_dynticks); - rdtp->dynticks++; - rdtp->dynticks_nesting--; + if (--rdtp->dynticks_nesting == 0) + rdtp->dynticks++; WARN_ON_ONCE(rdtp->dynticks & 0x1); local_irq_restore(flags); }