]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - kernel/rcuclassic.c
kprobes: remove redundant config check
[mv-sheeva.git] / kernel / rcuclassic.c
index 214e1cde98129b7fca9e23754c5258a190b91eec..6f8696c502f429ebcbaf65e537fdf47e3127d300 100644 (file)
@@ -106,7 +106,7 @@ static void force_quiescent_state(struct rcu_data *rdp,
                 */
                cpus_and(cpumask, rcp->cpumask, cpu_online_map);
                cpu_clear(rdp->cpu, cpumask);
-               for_each_cpu_mask(cpu, cpumask)
+               for_each_cpu_mask_nr(cpu, cpumask)
                        smp_send_reschedule(cpu);
        }
 }
@@ -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,