[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>
This commit is contained in:
Andi Kleen
2006-09-26 10:52:38 +02:00
committed by Andi Kleen
parent 3566561bfa
commit e8c7391de4

View File

@@ -299,7 +299,9 @@ void dump_trace(struct task_struct *tsk, struct pt_regs *regs, unsigned long * s
#define HANDLE_STACK(cond) \ #define HANDLE_STACK(cond) \
do while (cond) { \ do while (cond) { \
unsigned long addr = *stack++; \ unsigned long addr = *stack++; \
if (kernel_text_address(addr)) { \ if (oops_in_progress ? \
__kernel_text_address(addr) : \
kernel_text_address(addr)) { \
/* \ /* \
* If the address is either in the text segment of the \ * If the address is either in the text segment of the \
* kernel, or in the region which contains vmalloc'ed \ * kernel, or in the region which contains vmalloc'ed \