diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2006-12-04 09:40:47 -0500 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2006-12-04 09:40:47 -0500 |
commit | 236257eee99a35d67d3feab0769bded83efdc3ec (patch) | |
tree | ffdad8451122c32f030044df27e83d3c503eb23b /arch/s390/kernel/traps.c | |
parent | 59f35d53fde3987d071ea1c9bf1c9ba29fcb69fe (diff) |
[S390] lockdep: show held locks when showing a stackdump
Follow i386/x86_64:
lockdep can be used to print held locks when printing a
backtrace. This can be useful when debugging things like
'scheduling while atomic' asserts.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/traps.c')
-rw-r--r-- | arch/s390/kernel/traps.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/s390/kernel/traps.c b/arch/s390/kernel/traps.c index 475dbb88443..3cbb0dcf1f1 100644 --- a/arch/s390/kernel/traps.c +++ b/arch/s390/kernel/traps.c | |||
@@ -129,7 +129,7 @@ __show_trace(unsigned long sp, unsigned long low, unsigned long high) | |||
129 | } | 129 | } |
130 | } | 130 | } |
131 | 131 | ||
132 | void show_trace(struct task_struct *task, unsigned long * stack) | 132 | void show_trace(struct task_struct *task, unsigned long *stack) |
133 | { | 133 | { |
134 | register unsigned long __r15 asm ("15"); | 134 | register unsigned long __r15 asm ("15"); |
135 | unsigned long sp; | 135 | unsigned long sp; |
@@ -151,6 +151,9 @@ void show_trace(struct task_struct *task, unsigned long * stack) | |||
151 | __show_trace(sp, S390_lowcore.thread_info, | 151 | __show_trace(sp, S390_lowcore.thread_info, |
152 | S390_lowcore.thread_info + THREAD_SIZE); | 152 | S390_lowcore.thread_info + THREAD_SIZE); |
153 | printk("\n"); | 153 | printk("\n"); |
154 | if (!task) | ||
155 | task = current; | ||
156 | debug_show_held_locks(task); | ||
154 | } | 157 | } |
155 | 158 | ||
156 | void show_stack(struct task_struct *task, unsigned long *sp) | 159 | void show_stack(struct task_struct *task, unsigned long *sp) |