diff options
-rw-r--r-- | arch/s390/kernel/setup.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c index b282034452a4..813444aac7d7 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c | |||
@@ -289,19 +289,34 @@ void (*_machine_power_off)(void) = do_machine_power_off_nonsmp; | |||
289 | 289 | ||
290 | void machine_restart(char *command) | 290 | void machine_restart(char *command) |
291 | { | 291 | { |
292 | console_unblank(); | 292 | if (!in_interrupt() || oops_in_progress) |
293 | /* | ||
294 | * Only unblank the console if we are called in enabled | ||
295 | * context or a bust_spinlocks cleared the way for us. | ||
296 | */ | ||
297 | console_unblank(); | ||
293 | _machine_restart(command); | 298 | _machine_restart(command); |
294 | } | 299 | } |
295 | 300 | ||
296 | void machine_halt(void) | 301 | void machine_halt(void) |
297 | { | 302 | { |
298 | console_unblank(); | 303 | if (!in_interrupt() || oops_in_progress) |
304 | /* | ||
305 | * Only unblank the console if we are called in enabled | ||
306 | * context or a bust_spinlocks cleared the way for us. | ||
307 | */ | ||
308 | console_unblank(); | ||
299 | _machine_halt(); | 309 | _machine_halt(); |
300 | } | 310 | } |
301 | 311 | ||
302 | void machine_power_off(void) | 312 | void machine_power_off(void) |
303 | { | 313 | { |
304 | console_unblank(); | 314 | if (!in_interrupt() || oops_in_progress) |
315 | /* | ||
316 | * Only unblank the console if we are called in enabled | ||
317 | * context or a bust_spinlocks cleared the way for us. | ||
318 | */ | ||
319 | console_unblank(); | ||
305 | _machine_power_off(); | 320 | _machine_power_off(); |
306 | } | 321 | } |
307 | 322 | ||