From 8a5691055baf932140694f2aa91a3de17d908ddc Mon Sep 17 00:00:00 2001 From: "Paul E. McKenney" Date: Sat, 26 May 2012 08:56:01 -0700 Subject: [PATCH] --- yaml --- r: 312191 b: refs/heads/master c: a16b7a693430406dc229ab0c6b154f669a2031c5 h: refs/heads/master i: 312189: f1049b6e52fcc229d0a42914ff84b771a1915800 312187: b5d7b1e47e89ae49b81e2e0c035b0a7d7851bc54 312183: 27c55fed65bc9a61467032ef44e35270004ff239 312175: c88c45fb56f83331084c778e0385cfb92352699d 312159: b741e78a57c1976045827ec931d66d00d6ffde6e 312127: f93ed4b5d175706b5782689d611f023fda3b2627 312063: 3a21233878b83d5ece892ad002ecd7753d18c3d8 v: v3 --- [refs] | 2 +- trunk/kernel/rcutree.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 1efe7f4e56fa..091a0c3a4fe4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 62fde6edf12b60fddb13a3f0a779c8be0bb7447e +refs/heads/master: a16b7a693430406dc229ab0c6b154f669a2031c5 diff --git a/trunk/kernel/rcutree.c b/trunk/kernel/rcutree.c index a4a9c916ad36..ceaa95923a87 100644 --- a/trunk/kernel/rcutree.c +++ b/trunk/kernel/rcutree.c @@ -1904,11 +1904,11 @@ __call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu), * If called from an extended quiescent state, invoke the RCU * core in order to force a re-evaluation of RCU's idleness. */ - if (rcu_is_cpu_idle()) + if (rcu_is_cpu_idle() && cpu_online(smp_processor_id())) invoke_rcu_core(); - /* If interrupts were disabled, don't dive into RCU core. */ - if (irqs_disabled_flags(flags)) { + /* If interrupts were disabled or CPU offline, don't invoke RCU core. */ + if (irqs_disabled_flags(flags) || cpu_is_offline(smp_processor_id())) { local_irq_restore(flags); return; }