diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2008-08-01 14:10:02 -0700 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-08-15 17:02:56 +0200 |
commit | ff9cf2ce7afe76435d66c898cc9dacaa68e79d41 (patch) | |
tree | 81f97a2793fd5487c95e03b84ff061c1391be091 | |
parent | 1f7b94cd3d564901f9e04a8bc5832ae7bfd690a0 (diff) |
rcu: fixes to include/linux/rcupreempt.h
Hello!
Compared tip/core/rcu to my latest patchset, and found the following
issues:
o the memory barrier in rcu_exit_nohz() somehow got out of place
(it is correct in mainline as of 2.6.26-rc7).
o There is a duplicate declaration of rcu_dyntick_sched.
The attached patch fixes these.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | include/linux/rcupreempt.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/include/linux/rcupreempt.h b/include/linux/rcupreempt.h index 0967f03b070..addb5e282f3 100644 --- a/include/linux/rcupreempt.h +++ b/include/linux/rcupreempt.h @@ -111,7 +111,6 @@ extern struct rcupreempt_trace *rcupreempt_trace_cpu(int cpu); struct softirq_action; #ifdef CONFIG_NO_HZ -DECLARE_PER_CPU(struct rcu_dyntick_sched, rcu_dyntick_sched); static inline void rcu_enter_nohz(void) { @@ -126,8 +125,8 @@ static inline void rcu_exit_nohz(void) { static DEFINE_RATELIMIT_STATE(rs, 10 * HZ, 1); - smp_mb(); /* CPUs seeing ++ must see later RCU read-side crit sects */ __get_cpu_var(rcu_dyntick_sched).dynticks++; + smp_mb(); /* CPUs seeing ++ must see later RCU read-side crit sects */ WARN_ON_RATELIMIT(!(__get_cpu_var(rcu_dyntick_sched).dynticks & 0x1), &rs); } |