summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShaohua Li <shaohua.li@intel.com>2006-01-16 01:56:45 +0100
committerLinus Torvalds <torvalds@g5.osdl.org>2006-01-16 20:27:59 +0100
commit5b74357328eb325c12ea76f043524e7924a021e4 (patch)
tree4965d86efce5ef0bfe2f3f5a0fea7faeb832909a
parent[PATCH] x86_64: Only let user select PM timer support when EMBEDDED (diff)
downloadlinux-5b74357328eb325c12ea76f043524e7924a021e4.tar.xz
linux-5b74357328eb325c12ea76f043524e7924a021e4.zip
[PATCH] x86_64: lapic resume uses correct base address
uses correct lapic base address. The set_fixmap appears useless. Signed-off-by: Shaohua Li<shaohua.li@intel.com> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--arch/x86_64/kernel/apic.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/arch/x86_64/kernel/apic.c b/arch/x86_64/kernel/apic.c
index 8fdd089fd17e..5d3c5b07b8db 100644
--- a/arch/x86_64/kernel/apic.c
+++ b/arch/x86_64/kernel/apic.c
@@ -499,13 +499,10 @@ static int lapic_resume(struct sys_device *dev)
if (!apic_pm_state.active)
return 0;
- /* XXX: Pavel needs this for S3 resume, but can't explain why */
- set_fixmap_nocache(FIX_APIC_BASE, APIC_DEFAULT_PHYS_BASE);
-
local_irq_save(flags);
rdmsr(MSR_IA32_APICBASE, l, h);
l &= ~MSR_IA32_APICBASE_BASE;
- l |= MSR_IA32_APICBASE_ENABLE | APIC_DEFAULT_PHYS_BASE;
+ l |= MSR_IA32_APICBASE_ENABLE | mp_lapic_addr;
wrmsr(MSR_IA32_APICBASE, l, h);
apic_write(APIC_LVTERR, ERROR_APIC_VECTOR | APIC_LVT_MASKED);
apic_write(APIC_ID, apic_pm_state.apic_id);