aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2006-12-06 20:14:12 -0500
committerAndi Kleen <andi@basil.nowhere.org>2006-12-06 20:14:12 -0500
commit446f713ba1afd68568139ae4691335ba273fa7f4 (patch)
treefaa45ced3a3dc71b4637241828c10bf0abd2d7dd /arch
parente2124bb8d369a4bc1afde1959040e33d71c41d5e (diff)
[PATCH] unwinder: always use unlocked module list access in unwinder fallback
We're already well protected against module unloads because module unload uses stop_machine(). The only exception is NMIs, but other users already risk lockless accesses here. This avoids some hackery in lockdep and also a potential deadlock This matches what i386 does. Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86_64/kernel/traps.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/x86_64/kernel/traps.c b/arch/x86_64/kernel/traps.c
index 75ceccee178c..9864d195c408 100644
--- a/arch/x86_64/kernel/traps.c
+++ b/arch/x86_64/kernel/traps.c
@@ -317,9 +317,9 @@ void dump_trace(struct task_struct *tsk, struct pt_regs *regs,
317#define HANDLE_STACK(cond) \ 317#define HANDLE_STACK(cond) \
318 do while (cond) { \ 318 do while (cond) { \
319 unsigned long addr = *stack++; \ 319 unsigned long addr = *stack++; \
320 if (oops_in_progress ? \ 320 /* Use unlocked access here because except for NMIs \
321 __kernel_text_address(addr) : \ 321 we should be already protected against module unloads */ \
322 kernel_text_address(addr)) { \ 322 if (__kernel_text_address(addr)) { \
323 /* \ 323 /* \
324 * If the address is either in the text segment of the \ 324 * If the address is either in the text segment of the \
325 * kernel, or in the region which contains vmalloc'ed \ 325 * kernel, or in the region which contains vmalloc'ed \