|
@@ -499,13 +499,10 @@ static int lapic_resume(struct sys_device *dev)
|
|
if (!apic_pm_state.active)
|
|
if (!apic_pm_state.active)
|
|
return 0;
|
|
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);
|
|
local_irq_save(flags);
|
|
rdmsr(MSR_IA32_APICBASE, l, h);
|
|
rdmsr(MSR_IA32_APICBASE, l, h);
|
|
l &= ~MSR_IA32_APICBASE_BASE;
|
|
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);
|
|
wrmsr(MSR_IA32_APICBASE, l, h);
|
|
apic_write(APIC_LVTERR, ERROR_APIC_VECTOR | APIC_LVT_MASKED);
|
|
apic_write(APIC_LVTERR, ERROR_APIC_VECTOR | APIC_LVT_MASKED);
|
|
apic_write(APIC_ID, apic_pm_state.apic_id);
|
|
apic_write(APIC_ID, apic_pm_state.apic_id);
|