|
@@ -87,15 +87,15 @@ DECLARE_PER_CPU(long, dynticks_progress_counter);
|
|
|
|
|
|
static inline void rcu_enter_nohz(void)
|
|
static inline void rcu_enter_nohz(void)
|
|
{
|
|
{
|
|
|
|
+ smp_mb(); /* CPUs seeing ++ must see prior RCU read-side crit sects */
|
|
__get_cpu_var(dynticks_progress_counter)++;
|
|
__get_cpu_var(dynticks_progress_counter)++;
|
|
WARN_ON(__get_cpu_var(dynticks_progress_counter) & 0x1);
|
|
WARN_ON(__get_cpu_var(dynticks_progress_counter) & 0x1);
|
|
- mb();
|
|
|
|
}
|
|
}
|
|
|
|
|
|
static inline void rcu_exit_nohz(void)
|
|
static inline void rcu_exit_nohz(void)
|
|
{
|
|
{
|
|
- mb();
|
|
|
|
__get_cpu_var(dynticks_progress_counter)++;
|
|
__get_cpu_var(dynticks_progress_counter)++;
|
|
|
|
+ smp_mb(); /* CPUs seeing ++ must see later RCU read-side crit sects */
|
|
WARN_ON(!(__get_cpu_var(dynticks_progress_counter) & 0x1));
|
|
WARN_ON(!(__get_cpu_var(dynticks_progress_counter) & 0x1));
|
|
}
|
|
}
|
|
|
|
|