]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - kernel/rcuclassic.c
Merge commit 'origin/master'
[karo-tx-linux.git] / kernel / rcuclassic.c
index 214e1cde98129b7fca9e23754c5258a190b91eec..16eeeaa9d618c7ef4c7ef4f31499fb1195a396b3 100644 (file)
@@ -387,6 +387,10 @@ static void __rcu_offline_cpu(struct rcu_data *this_rdp,
        rcu_move_batch(this_rdp, rdp->donelist, rdp->donetail);
        rcu_move_batch(this_rdp, rdp->curlist, rdp->curtail);
        rcu_move_batch(this_rdp, rdp->nxtlist, rdp->nxttail);
+
+       local_irq_disable();
+       this_rdp->qlen += rdp->qlen;
+       local_irq_enable();
 }
 
 static void rcu_offline_cpu(int cpu)
@@ -571,7 +575,7 @@ static void __cpuinit rcu_online_cpu(int cpu)
 
        rcu_init_percpu_data(cpu, &rcu_ctrlblk, rdp);
        rcu_init_percpu_data(cpu, &rcu_bh_ctrlblk, bh_rdp);
-       open_softirq(RCU_SOFTIRQ, rcu_process_callbacks, NULL);
+       open_softirq(RCU_SOFTIRQ, rcu_process_callbacks);
 }
 
 static int __cpuinit rcu_cpu_notify(struct notifier_block *self,