[PATCH] x86_64: lapic resume uses correct base address
authorShaohua Li <shaohua.li@intel.com>
Mon, 16 Jan 2006 00:56:45 +0000 (01:56 +0100)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 16 Jan 2006 19:27:59 +0000 (11:27 -0800)
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>
arch/x86_64/kernel/apic.c

index 8fdd089fd17efeeef3275f6496bc0b280978d057..5d3c5b07b8db1271407e2ddaf26e909e70473109 100644 (file)
@@ -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);