Commit 2de3bd03 authored by Thomas Gleixner's avatar Thomas Gleixner Committed by Greg Kroah-Hartman

smp/hotplug: Replace BUG_ON and react useful

commit dea1d0f5 upstream.

The move of the unpark functions to the control thread moved the BUG_ON()
there as well. While it made some sense in the idle thread of the upcoming
CPU, it's bogus to crash the control thread on the already online CPU,
especially as the function has a return value and the callsite is prepared
to handle an error return.

Replace it with a WARN_ON_ONCE() and return a proper error code.

Fixes: 9cd4f1a4 ("smp/hotplug: Move unparking of percpu threads to the control CPU")
Rightfully-ranted-at-by: default avatarLinux Torvalds <torvalds@linux-foundation.org>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 8e5772cd
...@@ -354,7 +354,8 @@ static int bringup_wait_for_ap(unsigned int cpu) ...@@ -354,7 +354,8 @@ static int bringup_wait_for_ap(unsigned int cpu)
/* Wait for the CPU to reach CPUHP_AP_ONLINE_IDLE */ /* Wait for the CPU to reach CPUHP_AP_ONLINE_IDLE */
wait_for_completion(&st->done); wait_for_completion(&st->done);
BUG_ON(!cpu_online(cpu)); if (WARN_ON_ONCE((!cpu_online(cpu))))
return -ECANCELED;
/* Unpark the stopper thread and the hotplug thread of the target cpu */ /* Unpark the stopper thread and the hotplug thread of the target cpu */
stop_machine_unpark(cpu); stop_machine_unpark(cpu);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment