diff options
author | Michael Ryan <ryan@funsoft.com> | 2006-03-24 06:15:17 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-24 10:33:16 -0500 |
commit | 699ff13f10b75ea929eea6f6fe47ba9cc8f92ca2 (patch) | |
tree | be9ae1f4d5483b9f6887ab67a2bf27b3d34834d7 /arch/s390 | |
parent | 4896cef8e33e668734234543afb58eb171476ff3 (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/s390')
-rw-r--r-- | arch/s390/kernel/smp.c | 4 |
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(); |