|
@@ -1460,25 +1460,11 @@ __rcu_process_callbacks(struct rcu_state *rsp, struct rcu_data *rdp)
|
|
*/
|
|
*/
|
|
static void rcu_process_callbacks(void)
|
|
static void rcu_process_callbacks(void)
|
|
{
|
|
{
|
|
- /*
|
|
|
|
- * Memory references from any prior RCU read-side critical sections
|
|
|
|
- * executed by the interrupted code must be seen before any RCU
|
|
|
|
- * grace-period manipulations below.
|
|
|
|
- */
|
|
|
|
- smp_mb(); /* See above block comment. */
|
|
|
|
-
|
|
|
|
__rcu_process_callbacks(&rcu_sched_state,
|
|
__rcu_process_callbacks(&rcu_sched_state,
|
|
&__get_cpu_var(rcu_sched_data));
|
|
&__get_cpu_var(rcu_sched_data));
|
|
__rcu_process_callbacks(&rcu_bh_state, &__get_cpu_var(rcu_bh_data));
|
|
__rcu_process_callbacks(&rcu_bh_state, &__get_cpu_var(rcu_bh_data));
|
|
rcu_preempt_process_callbacks();
|
|
rcu_preempt_process_callbacks();
|
|
|
|
|
|
- /*
|
|
|
|
- * Memory references from any later RCU read-side critical sections
|
|
|
|
- * executed by the interrupted code must be seen after any RCU
|
|
|
|
- * grace-period manipulations above.
|
|
|
|
- */
|
|
|
|
- smp_mb(); /* See above block comment. */
|
|
|
|
-
|
|
|
|
/* If we are last CPU on way to dyntick-idle mode, accelerate it. */
|
|
/* If we are last CPU on way to dyntick-idle mode, accelerate it. */
|
|
rcu_needs_cpu_flush();
|
|
rcu_needs_cpu_flush();
|
|
}
|
|
}
|