diff options
| -rw-r--r-- | arch/powerpc/xmon/xmon.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c index 598cdc7c7adc..d712b23974ec 100644 --- a/arch/powerpc/xmon/xmon.c +++ b/arch/powerpc/xmon/xmon.c | |||
| @@ -315,10 +315,17 @@ static void get_output_lock(void) | |||
| 315 | if (last_speaker == 0) | 315 | if (last_speaker == 0) |
| 316 | return; | 316 | return; |
| 317 | 317 | ||
| 318 | timeout = 10000000; | 318 | /* |
| 319 | * Wait a full second for the lock, we might be on a slow | ||
| 320 | * console, but check every 100us. | ||
| 321 | */ | ||
| 322 | timeout = 10000; | ||
| 319 | while (xmon_speaker == last_speaker) { | 323 | while (xmon_speaker == last_speaker) { |
| 320 | if (--timeout > 0) | 324 | if (--timeout > 0) { |
| 325 | udelay(100); | ||
| 321 | continue; | 326 | continue; |
| 327 | } | ||
| 328 | |||
| 322 | /* hostile takeover */ | 329 | /* hostile takeover */ |
| 323 | prev = cmpxchg(&xmon_speaker, last_speaker, me); | 330 | prev = cmpxchg(&xmon_speaker, last_speaker, me); |
| 324 | if (prev == last_speaker) | 331 | if (prev == last_speaker) |
