aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/rcuclassic.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/rcuclassic.c b/kernel/rcuclassic.c
index 5de126630b10..fb1f1cc45142 100644
--- a/kernel/rcuclassic.c
+++ b/kernel/rcuclassic.c
@@ -700,7 +700,9 @@ void rcu_check_callbacks(int cpu, int user)
700static void rcu_init_percpu_data(int cpu, struct rcu_ctrlblk *rcp, 700static void rcu_init_percpu_data(int cpu, struct rcu_ctrlblk *rcp,
701 struct rcu_data *rdp) 701 struct rcu_data *rdp)
702{ 702{
703 spin_lock(&rcp->lock); 703 long flags;
704
705 spin_lock_irqsave(&rcp->lock, flags);
704 memset(rdp, 0, sizeof(*rdp)); 706 memset(rdp, 0, sizeof(*rdp));
705 rdp->nxttail[0] = rdp->nxttail[1] = rdp->nxttail[2] = &rdp->nxtlist; 707 rdp->nxttail[0] = rdp->nxttail[1] = rdp->nxttail[2] = &rdp->nxtlist;
706 rdp->donetail = &rdp->donelist; 708 rdp->donetail = &rdp->donelist;
@@ -708,7 +710,7 @@ static void rcu_init_percpu_data(int cpu, struct rcu_ctrlblk *rcp,
708 rdp->qs_pending = 0; 710 rdp->qs_pending = 0;
709 rdp->cpu = cpu; 711 rdp->cpu = cpu;
710 rdp->blimit = blimit; 712 rdp->blimit = blimit;
711 spin_unlock(&rcp->lock); 713 spin_unlock_irqrestore(&rcp->lock, flags);
712} 714}
713 715
714static void __cpuinit rcu_online_cpu(int cpu) 716static void __cpuinit rcu_online_cpu(int cpu)