summaryrefslogtreecommitdiffstats
path: root/kernel/cpu.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2015-08-12 12:12:12 +0200
committerIngo Molnar <mingo@kernel.org>2015-08-12 12:12:12 +0200
commit9b9412dc7008f360c8e8ed10a654d3c8719f69d8 (patch)
treef70ad5404519008315d576de91eb1d4fb55116d5 /kernel/cpu.c
parent58ccab91342c1cc1fe08da9b198ac5d763706c2e (diff)
parent3dbe43f6fba9f2a0e46e371733575a45704c22ab (diff)
downloadlinux-9b9412dc7008f360c8e8ed10a654d3c8719f69d8.tar.gz
linux-9b9412dc7008f360c8e8ed10a654d3c8719f69d8.tar.bz2
linux-9b9412dc7008f360c8e8ed10a654d3c8719f69d8.zip
Merge branch 'for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu
Pull RCU changes from Paul E. McKenney: - The combination of tree geometry-initialization simplifications and OS-jitter-reduction changes to expedited grace periods. These two are stacked due to the large number of conflicts that would otherwise result. [ With one addition, a temporary commit to silence a lockdep false positive. Additional changes to the expedited grace-period primitives (queued for 4.4) remove the cause of this false positive, and therefore include a revert of this temporary commit. ] - Documentation updates. - Torture-test updates. - Miscellaneous fixes. Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/cpu.c')
-rw-r--r--kernel/cpu.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/kernel/cpu.c b/kernel/cpu.c
index 5644ec5582b9..910d709b578a 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -381,14 +381,14 @@ static int __ref _cpu_down(unsigned int cpu, int tasks_frozen)
* will observe it.
*
* For CONFIG_PREEMPT we have preemptible RCU and its sync_rcu() might
- * not imply sync_sched(), so explicitly call both.
+ * not imply sync_sched(), so wait for both.
*
* Do sync before park smpboot threads to take care the rcu boost case.
*/
-#ifdef CONFIG_PREEMPT
- synchronize_sched();
-#endif
- synchronize_rcu();
+ if (IS_ENABLED(CONFIG_PREEMPT))
+ synchronize_rcu_mult(call_rcu, call_rcu_sched);
+ else
+ synchronize_rcu();
smpboot_park_threads(cpu);