From 71813352dfbd7ba90526c10bdbd663396fd0a51b Mon Sep 17 00:00:00 2001 From: "Paul E. McKenney" Date: Mon, 3 Oct 2011 11:38:52 -0700 Subject: [PATCH] --- yaml --- r: 277199 b: refs/heads/master c: 34240697d619c439c55f21989680024dcb604aab h: refs/heads/master i: 277197: 0e4c908d37e785e9d6372e1863eff0e356645a52 277195: 3830ca0df80892b4222b838a445cd1abeb15e92c 277191: 0f2966f11c7428dff72480ded343c813733736cd 277183: dba16112217a1d993e6443a0e67304527cfaa311 v: v3 --- [refs] | 2 +- trunk/kernel/rcutree.c | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 881b8e4bbd93..faccaf423812 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2c01531f08f8ba663a20d8472a3032f6df133b6e +refs/heads/master: 34240697d619c439c55f21989680024dcb604aab diff --git a/trunk/kernel/rcutree.c b/trunk/kernel/rcutree.c index 1c40326724f6..69b6cdd4f944 100644 --- a/trunk/kernel/rcutree.c +++ b/trunk/kernel/rcutree.c @@ -556,12 +556,16 @@ void rcu_nmi_exit(void) * rcu_is_cpu_idle - see if RCU thinks that the current CPU is idle * * If the current CPU is in its idle loop and is neither in an interrupt - * or NMI handler, return true. The caller must have at least disabled - * preemption. + * or NMI handler, return true. */ int rcu_is_cpu_idle(void) { - return (atomic_read(&__get_cpu_var(rcu_dynticks).dynticks) & 0x1) == 0; + int ret; + + preempt_disable(); + ret = (atomic_read(&__get_cpu_var(rcu_dynticks).dynticks) & 0x1) == 0; + preempt_enable(); + return ret; } #endif /* #ifdef CONFIG_PROVE_RCU */