linux/arch/s390/kernel
Christian Borntraeger 7aa8dac7ac [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>
2007-11-20 11:13:44 +01:00
..
Makefile [S390] vmur: fix diag14 exceptions with addresses > 2GB. 2007-08-22 13:51:47 +02:00
asm-offsets.c rename thread_info to stack 2007-05-09 12:30:56 -07:00
audit.c [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
audit.h [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
base.S [S390] Convert memory detection into C code. 2007-02-05 21:18:37 +01:00
binfmt_elf32.c [S390] Avoid excessive inlining. 2007-02-05 21:18:53 +01:00
bitmap.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
compat_audit.c [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
compat_exec_domain.c [S390] Get rid of a lot of sparse warnings. 2007-02-05 21:16:47 +01:00
compat_linux.c remove include/asm-*/ipc.h 2007-10-17 08:42:55 -07:00
compat_linux.h [S390] noexec protection 2007-02-05 21:18:17 +01:00
compat_ptrace.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
compat_signal.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
compat_wrapper.S [S390] Wire up sys_fallocate. 2007-07-27 12:29:19 +02:00
cpcmd.c [S390] cpcmd: fix inline assembly usage. 2007-10-12 16:13:09 +02:00
crash.c [S390] Get rid of a lot of sparse warnings. 2007-02-05 21:16:47 +01:00
debug.c [S390] arch/s390/kernel/debug.c: use mutex instead of semaphore 2007-05-31 17:38:11 +02:00
diag.c [S390] vmur: fix diag14 exceptions with addresses > 2GB. 2007-08-22 13:51:47 +02:00
dis.c [S390] disassembler: Remove redundant variable assignment 2007-10-12 16:13:06 +02:00
early.c [S390] Fix memory detection. 2007-11-05 11:10:17 +01:00
ebcdic.c [S390] Get rid of a lot of sparse warnings. 2007-02-05 21:16:47 +01:00
entry.S lockdep: s390: connect the sysexit hook 2007-10-11 22:11:12 +02:00
entry64.S lockdep: s390: connect the sysexit hook 2007-10-11 22:11:12 +02:00
head.S [S390] Get rid of new section mismatch warnings. 2007-07-27 12:29:18 +02:00
head31.S [S390] Fixed handling of access register mode faults. 2007-03-05 23:35:54 +01:00
head64.S [S390] zfcpdump support. 2007-04-27 16:01:44 +02:00
init_task.c Remove fs.h from mm.h 2007-07-29 17:09:29 -07:00
ipl.c [S390] kernel: Fix dump on panic for DASDs under LPAR. 2007-10-22 12:52:48 +02:00
irq.c [SOFTIRQ]: Remove do_softirq() symbol export. 2007-10-10 16:48:36 -07:00
kprobes.c kprobes: support kretprobe blacklist 2007-10-16 09:43:10 -07:00
machine_kexec.c [S390] nss: disable kexec. 2007-03-05 23:35:45 +01:00
module.c [S390] Use generic bug. 2007-04-27 16:01:42 +02:00
process.c [S390] Fix compile on !CONFIG_SMP. 2007-11-05 11:10:16 +01:00
ptrace.c Consolidate PTRACE_DETACH 2007-10-16 09:42:49 -07:00
reipl.S [S390] reipl: move dump_prefix_page out of text section. 2007-03-05 23:35:43 +01:00
reipl64.S [S390] reipl: move dump_prefix_page out of text section. 2007-03-05 23:35:43 +01:00
relocate_kernel.S [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
relocate_kernel64.S [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
s390_ext.c [S390] ETR support. 2007-02-05 21:18:19 +01:00
s390_ksyms.c [S390] vmur: fix diag14 exceptions with addresses > 2GB. 2007-08-22 13:51:47 +02:00
semaphore.c [S390] Inline assembly cleanup. 2006-09-28 16:56:43 +02:00
setup.c [S390] magic sysrq: check for in_atomic before doing an console_unblank 2007-11-20 11:13:44 +01:00
signal.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
smp.c [S390] Rename "idle_time" attribute to "idle_time_us". 2007-11-05 11:10:17 +01:00
stacktrace.c [S390] Simplify stack trace. 2007-07-17 13:36:19 +02:00
sys_s390.c remove include/asm-*/ipc.h 2007-10-17 08:42:55 -07:00
syscalls.S [S390] Wire up sys_fallocate. 2007-07-27 12:29:19 +02:00
time.c sched: restore deterministic CPU accounting on powerpc 2007-11-09 22:39:38 +01:00
traps.c Report that kernel is tainted if there was an OOPS 2007-07-17 10:23:02 -07:00
vmlinux.lds.S [S390] s390: use PAGE_SIZE in vmlinux.lds 2007-10-12 16:13:10 +02:00
vtime.c sched: restore deterministic CPU accounting on powerpc 2007-11-09 22:39:38 +01:00