From ab88314e1ed12b28d670872e9bb76c82ae86fe13 Mon Sep 17 00:00:00 2001 From: "Paul E. McKenney" Date: Sun, 17 Aug 2008 07:37:15 -0700 Subject: [PATCH] --- yaml --- r: 110774 b: refs/heads/master c: cd95851785bcfe95fdf73689e8ecb5a1c5959231 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/kernel/rcuclassic.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 925774b20f87..5c2cb9dfdd97 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5802294f1b1895ee19a3d0ae72805da453afb9de +refs/heads/master: cd95851785bcfe95fdf73689e8ecb5a1c5959231 diff --git a/trunk/kernel/rcuclassic.c b/trunk/kernel/rcuclassic.c index 5de126630b10..fb1f1cc45142 100644 --- a/trunk/kernel/rcuclassic.c +++ b/trunk/kernel/rcuclassic.c @@ -700,7 +700,9 @@ void rcu_check_callbacks(int cpu, int user) static void rcu_init_percpu_data(int cpu, struct rcu_ctrlblk *rcp, struct rcu_data *rdp) { - spin_lock(&rcp->lock); + long flags; + + spin_lock_irqsave(&rcp->lock, flags); memset(rdp, 0, sizeof(*rdp)); rdp->nxttail[0] = rdp->nxttail[1] = rdp->nxttail[2] = &rdp->nxtlist; rdp->donetail = &rdp->donelist; @@ -708,7 +710,7 @@ static void rcu_init_percpu_data(int cpu, struct rcu_ctrlblk *rcp, rdp->qs_pending = 0; rdp->cpu = cpu; rdp->blimit = blimit; - spin_unlock(&rcp->lock); + spin_unlock_irqrestore(&rcp->lock, flags); } static void __cpuinit rcu_online_cpu(int cpu)