Procházet zdrojové kódy

[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>
Andi Kleen před 18 roky
rodič
revize
e8c7391de4
1 změnil soubory, kde provedl 3 přidání a 1 odebrání
  1. 3 1
      arch/x86_64/kernel/traps.c

+ 3 - 1
arch/x86_64/kernel/traps.c

@@ -299,7 +299,9 @@ void dump_trace(struct task_struct *tsk, struct pt_regs *regs, unsigned long * s
 #define HANDLE_STACK(cond) \
 	do while (cond) { \
 		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 \
 			 * kernel, or in the region which contains vmalloc'ed \