Merge branches 'core-urgent-for-linus' and 'irq-urgent-for-linus' of git://git.kernel...
[linux-2.6-block.git] / kernel / rcu / tree_plugin.h
index 2e850a51bb8fe285179fee76124dbc375851f09a..0a571e9a0f1d00868c74c5032912c1a0b24dce94 100644 (file)
@@ -49,7 +49,6 @@ DEFINE_PER_CPU(char, rcu_cpu_has_work);
 static cpumask_var_t rcu_nocb_mask; /* CPUs to have callbacks offloaded. */
 static bool have_rcu_nocb_mask;            /* Was rcu_nocb_mask allocated? */
 static bool __read_mostly rcu_nocb_poll;    /* Offload kthread are to poll. */
-static char __initdata nocb_buf[NR_CPUS * 5];
 #endif /* #ifdef CONFIG_RCU_NOCB_CPU */
 
 /*
@@ -327,6 +326,7 @@ void rcu_read_unlock_special(struct task_struct *t)
        special = t->rcu_read_unlock_special;
        if (special.b.need_qs) {
                rcu_preempt_qs();
+               t->rcu_read_unlock_special.b.need_qs = false;
                if (!t->rcu_read_unlock_special.s) {
                        local_irq_restore(flags);
                        return;
@@ -2386,8 +2386,8 @@ void __init rcu_init_nohz(void)
                cpumask_and(rcu_nocb_mask, cpu_possible_mask,
                            rcu_nocb_mask);
        }
-       cpulist_scnprintf(nocb_buf, sizeof(nocb_buf), rcu_nocb_mask);
-       pr_info("\tOffload RCU callbacks from CPUs: %s.\n", nocb_buf);
+       pr_info("\tOffload RCU callbacks from CPUs: %*pbl.\n",
+               cpumask_pr_args(rcu_nocb_mask));
        if (rcu_nocb_poll)
                pr_info("\tPoll for callbacks from no-CBs CPUs.\n");