diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2009-10-29 15:04:13 +0100 |
---|---|---|
committer | Martin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com> | 2009-10-29 15:05:13 +0100 |
commit | f8501ba77d69c88a65e4ebbe03bdc65b1edb0b86 (patch) | |
tree | 27e42cf7bd5171c5b17c2d423b6ae5d3394cb6ef /arch/s390/kernel/swsusp_asm64.S | |
parent | [S390] cputime: fix overflow on 31 bit systems (diff) | |
download | linux-f8501ba77d69c88a65e4ebbe03bdc65b1edb0b86.tar.xz linux-f8501ba77d69c88a65e4ebbe03bdc65b1edb0b86.zip |
[S390] smp: fix sigp stop handling
According to the architecture a cpu must not necessarily enter stopped
state after completion of a sigp instruction with "stop" order code.
So remove the BUG() statement after self sending sigp stop to avoid
that it ever gets reached.
Also add a sigp busy check to make sure that the order gets delivered.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/swsusp_asm64.S')
-rw-r--r-- | arch/s390/kernel/swsusp_asm64.S | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/s390/kernel/swsusp_asm64.S b/arch/s390/kernel/swsusp_asm64.S index 7c8653e27db6..0f4ef3b856d9 100644 --- a/arch/s390/kernel/swsusp_asm64.S +++ b/arch/s390/kernel/swsusp_asm64.S @@ -199,6 +199,7 @@ pgm_check_entry: brc 2,4b /* busy, try again */ 5: sigp %r9,%r2,__SIGP_STOP /* stop resume (current) CPU */ + brc 2,5b /* busy, try again */ 6: j 6b restart_suspend: |