[S390] magic sysrq: check for in_atomic before doing an console_unblank
When doing an magic sysrq reboot on s390 the following bug message
appears:
SysRq : Resetting
BUG: sleeping function called from invalid context at include/asm/semaphore.h:61
in_atomic():1, irqs_disabled():0
07000000004002a8 000000000fe6bc48 0000000000000002 0000000000000000
000000000fe6bce8 000000000fe6bc60 000000000fe6bc60 000000000012a79a
0000000000000000 07000000004002a8 0000000000000006 0000000000000000
0000000000000000 000000000fe6bc48 000000000000000d 000000000fe6bcb8
00000000004000c8 0000000000103234 000000000fe6bc48 000000000fe6bc90
Call Trace:
(¬<
00000000001031b2>| show_trace+0x12e/0x148)
¬<
000000000011ffca>| __might_sleep+0x10a/0x118
¬<
0000000000129fba>| acquire_console_sem+0x92/0xf4
¬<
000000000012a2ca>| console_unblank+0xc2/0xc8
¬<
0000000000107bb4>| machine_restart+0x54/0x6c
¬<
000000000028e806>| sysrq_handle_reboot+0x26/0x30
¬<
000000000028e52a>| __handle_sysrq+0xa6/0x180
¬<
0000000000140134>| run_workqueue+0xcc/0x18c
¬<
000000000014029a>| worker_thread+0xa6/0x108
¬<
00000000001458e4>| kthread+0x64/0x9c
¬<
0000000000106f0e>| kernel_thread_starter+0x6/0xc
¬<
0000000000106f08>| kernel_thread_starter+0x0/0xc
The only reason for doing a console_unblank on s390 is to flush the
log buffer. We have to check for in_atomic before doing a
console_unblank as the console is otherwise filled with an unrelated
bug message.
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>