aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2006-09-26 04:52:38 -0400
committerAndi Kleen <andi@basil.nowhere.org>2006-09-26 04:52:38 -0400
commite8c7391de4cd91b2cbb0c791f69ba1e066595848 (patch)
tree47d55aab3429321e346e2e9dec439d9fff4554d1 /arch
parent3566561bfadffcb5dbc85d576be80c0dbf2cccc9 (diff)
[PATCH] Don't use kernel_text_address in oops context
Because it can take spinlocks. Suggested by Mathieu Desnoyers Cc: Mathieu Desnoyers <compudj@krystal.dyndns.org> Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86_64/kernel/traps.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86_64/kernel/traps.c b/arch/x86_64/kernel/traps.c
index fb8486eca1b6..01f2a8d254c2 100644
--- a/arch/x86_64/kernel/traps.c
+++ b/arch/x86_64/kernel/traps.c
@@ -299,7 +299,9 @@ void dump_trace(struct task_struct *tsk, struct pt_regs *regs, unsigned long * s
299#define HANDLE_STACK(cond) \ 299#define HANDLE_STACK(cond) \
300 do while (cond) { \ 300 do while (cond) { \
301 unsigned long addr = *stack++; \ 301 unsigned long addr = *stack++; \
302 if (kernel_text_address(addr)) { \ 302 if (oops_in_progress ? \
303 __kernel_text_address(addr) : \
304 kernel_text_address(addr)) { \
303 /* \ 305 /* \
304 * If the address is either in the text segment of the \ 306 * If the address is either in the text segment of the \
305 * kernel, or in the region which contains vmalloc'ed \ 307 * kernel, or in the region which contains vmalloc'ed \