Skip to content
  • Christian Borntraeger's avatar
    [S390] magic sysrq: check for in_atomic before doing an console_unblank · 7aa8dac7
    Christian Borntraeger authored
    
    
    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: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    7aa8dac7