[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>
This commit is contained in:
Heiko Carstens
2009-10-29 15:04:13 +01:00
committed by Martin Schwidefsky
parent 70f5dc514c
commit f8501ba77d
3 changed files with 6 additions and 6 deletions

View File

@ -647,8 +647,8 @@ void __cpu_die(unsigned int cpu)
void cpu_die(void)
{
idle_task_exit();
signal_processor(smp_processor_id(), sigp_stop);
BUG();
while (signal_processor(smp_processor_id(), sigp_stop) == sigp_busy)
cpu_relax();
for (;;);
}