diff options
author | Andi Kleen <ak@suse.de> | 2006-09-26 10:52:34 +0200 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-09-26 10:52:34 +0200 |
commit | b7f5e3c7742d5332b78b831131f43fc3630e6322 (patch) | |
tree | 4334c97a3a8e2ac409444ecb2d7844d3a63e4118 /arch/x86_64/kernel/smp.c | |
parent | [PATCH] Avoid recursion in lockdep when stack tracer takes locks (diff) | |
download | linux-b7f5e3c7742d5332b78b831131f43fc3630e6322.tar.xz linux-b7f5e3c7742d5332b78b831131f43fc3630e6322.zip |
[PATCH] Don't access the APIC in safe_smp_processor_id when it is not mapped yet
Lockdep can call the dwarf2 unwinder early, and the dwarf2 code
uses safe_smp_processor_id which tries to access the local APIC page.
But that doesn't work before the APIC code has set up its fixmap.
Check for this case and always return boot cpu then.
Cc: jbeulich@novell.com
Cc: mingo@elte.hu
Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'arch/x86_64/kernel/smp.c')
-rw-r--r-- | arch/x86_64/kernel/smp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86_64/kernel/smp.c b/arch/x86_64/kernel/smp.c index 06af6ca60129..2df988bbf312 100644 --- a/arch/x86_64/kernel/smp.c +++ b/arch/x86_64/kernel/smp.c @@ -526,7 +526,7 @@ int safe_smp_processor_id(void) { unsigned apicid, i; - if (disable_apic) + if (disable_apic || !apic_mapped) return 0; apicid = hard_smp_processor_id(); |