--- b/kernel/cpu.c +++ a/kernel/cpu.c @@ -817,6 +817,7 @@ /* 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 @@ -1388,7 +1389,7 @@ [CPUHP_AP_SMPBOOT_THREADS] = { .name = "smpboot/threads:online", .startup.single = smpboot_unpark_threads, + .teardown.single = NULL, - .teardown.single = smpboot_park_threads, }, [CPUHP_AP_PERF_ONLINE] = { .name = "perf:online",