diff --git a/kernel/cpu.c b/kernel/cpu.c index 373e831e0faa4a17b131039f09d98cac03824f9e..bcee286b7c7373c6afe795fa844a0108d37777b5 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -706,8 +706,9 @@ static int takedown_cpu(unsigned int cpu) else synchronize_rcu(); - /* Park the hotplug thread */ + /* Park the smpboot threads */ kthread_park(per_cpu_ptr(&cpuhp_state, cpu)->thread); + smpboot_park_threads(cpu); /* * Prevent irq alloc/free while the dying cpu reorganizes the @@ -1206,7 +1207,7 @@ static struct cpuhp_step cpuhp_ap_states[] = { [CPUHP_AP_SMPBOOT_THREADS] = { .name = "smpboot:threads", .startup = smpboot_unpark_threads, - .teardown = smpboot_park_threads, + .teardown = NULL, }, [CPUHP_AP_NOTIFY_ONLINE] = { .name = "notify:online",