aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMichael Ryan <ryan@funsoft.com>2006-03-24 06:15:17 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-24 10:33:16 -0500
commit699ff13f10b75ea929eea6f6fe47ba9cc8f92ca2 (patch)
treebe9ae1f4d5483b9f6887ab67a2bf27b3d34834d7 /arch
parent4896cef8e33e668734234543afb58eb171476ff3 (diff)
[PATCH] s390: cpu up retries
Retry starting of new cpu if sigp restart returns condition code 2 (busy). Signed-off-by: Michael Ryan <ryan@funsoft.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/s390/kernel/smp.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
index d52d6d211d9f..2b8841f85534 100644
--- a/arch/s390/kernel/smp.c
+++ b/arch/s390/kernel/smp.c
@@ -665,7 +665,9 @@ __cpu_up(unsigned int cpu)
665 cpu_lowcore->current_task = (unsigned long) idle; 665 cpu_lowcore->current_task = (unsigned long) idle;
666 cpu_lowcore->cpu_data.cpu_nr = cpu; 666 cpu_lowcore->cpu_data.cpu_nr = cpu;
667 eieio(); 667 eieio();
668 signal_processor(cpu,sigp_restart); 668
669 while (signal_processor(cpu,sigp_restart) == sigp_busy)
670 udelay(10);
669 671
670 while (!cpu_online(cpu)) 672 while (!cpu_online(cpu))
671 cpu_relax(); 673 cpu_relax();