diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index d52d6d211d9f6d644b2f2f7115b90dedf5dde34d..2b8841f85534ae199c7af971215a95d5e11a0283 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c @@ -665,7 +665,9 @@ __cpu_up(unsigned int cpu) cpu_lowcore->current_task = (unsigned long) idle; cpu_lowcore->cpu_data.cpu_nr = cpu; eieio(); - signal_processor(cpu,sigp_restart); + + while (signal_processor(cpu,sigp_restart) == sigp_busy) + udelay(10); while (!cpu_online(cpu)) cpu_relax();