|
@@ -238,7 +238,8 @@ static int __cpuinit rcu_barrier_cpu_hotplug(struct notifier_block *self,
|
|
call_rcu_bh(rcu_migrate_head, rcu_migrate_callback);
|
|
call_rcu_bh(rcu_migrate_head, rcu_migrate_callback);
|
|
call_rcu_sched(rcu_migrate_head + 1, rcu_migrate_callback);
|
|
call_rcu_sched(rcu_migrate_head + 1, rcu_migrate_callback);
|
|
call_rcu(rcu_migrate_head + 2, rcu_migrate_callback);
|
|
call_rcu(rcu_migrate_head + 2, rcu_migrate_callback);
|
|
- } else if (action == CPU_POST_DEAD) {
|
|
|
|
|
|
+ } else if (action == CPU_DOWN_PREPARE) {
|
|
|
|
+ /* Don't need to wait until next removal operation. */
|
|
/* rcu_migrate_head is protected by cpu_add_remove_lock */
|
|
/* rcu_migrate_head is protected by cpu_add_remove_lock */
|
|
wait_migrated_callbacks();
|
|
wait_migrated_callbacks();
|
|
}
|
|
}
|