diff options
Diffstat (limited to 'kernel/rcutree.c')
-rw-r--r-- | kernel/rcutree.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/kernel/rcutree.c b/kernel/rcutree.c index a342b032112c..f2d8638e6c60 100644 --- a/kernel/rcutree.c +++ b/kernel/rcutree.c | |||
@@ -79,7 +79,10 @@ struct rcu_state rcu_bh_state = RCU_STATE_INITIALIZER(rcu_bh_state); | |||
79 | DEFINE_PER_CPU(struct rcu_data, rcu_bh_data); | 79 | DEFINE_PER_CPU(struct rcu_data, rcu_bh_data); |
80 | 80 | ||
81 | #ifdef CONFIG_NO_HZ | 81 | #ifdef CONFIG_NO_HZ |
82 | DEFINE_PER_CPU(struct rcu_dynticks, rcu_dynticks); | 82 | DEFINE_PER_CPU(struct rcu_dynticks, rcu_dynticks) = { |
83 | .dynticks_nesting = 1, | ||
84 | .dynticks = 1, | ||
85 | }; | ||
83 | #endif /* #ifdef CONFIG_NO_HZ */ | 86 | #endif /* #ifdef CONFIG_NO_HZ */ |
84 | 87 | ||
85 | static int blimit = 10; /* Maximum callbacks per softirq. */ | 88 | static int blimit = 10; /* Maximum callbacks per softirq. */ |
@@ -572,6 +575,7 @@ rcu_start_gp(struct rcu_state *rsp, unsigned long flags) | |||
572 | /* Special-case the common single-level case. */ | 575 | /* Special-case the common single-level case. */ |
573 | if (NUM_RCU_NODES == 1) { | 576 | if (NUM_RCU_NODES == 1) { |
574 | rnp->qsmask = rnp->qsmaskinit; | 577 | rnp->qsmask = rnp->qsmaskinit; |
578 | rsp->signaled = RCU_SIGNAL_INIT; /* force_quiescent_state OK. */ | ||
575 | spin_unlock_irqrestore(&rnp->lock, flags); | 579 | spin_unlock_irqrestore(&rnp->lock, flags); |
576 | return; | 580 | return; |
577 | } | 581 | } |
@@ -1379,13 +1383,6 @@ rcu_init_percpu_data(int cpu, struct rcu_state *rsp) | |||
1379 | 1383 | ||
1380 | static void __cpuinit rcu_online_cpu(int cpu) | 1384 | static void __cpuinit rcu_online_cpu(int cpu) |
1381 | { | 1385 | { |
1382 | #ifdef CONFIG_NO_HZ | ||
1383 | struct rcu_dynticks *rdtp = &per_cpu(rcu_dynticks, cpu); | ||
1384 | |||
1385 | rdtp->dynticks_nesting = 1; | ||
1386 | rdtp->dynticks |= 1; /* need consecutive #s even for hotplug. */ | ||
1387 | rdtp->dynticks_nmi = (rdtp->dynticks_nmi + 1) & ~0x1; | ||
1388 | #endif /* #ifdef CONFIG_NO_HZ */ | ||
1389 | rcu_init_percpu_data(cpu, &rcu_state); | 1386 | rcu_init_percpu_data(cpu, &rcu_state); |
1390 | rcu_init_percpu_data(cpu, &rcu_bh_state); | 1387 | rcu_init_percpu_data(cpu, &rcu_bh_state); |
1391 | open_softirq(RCU_SOFTIRQ, rcu_process_callbacks); | 1388 | open_softirq(RCU_SOFTIRQ, rcu_process_callbacks); |