mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-21 00:42:16 +00:00
x86: apic - unify disable_local_APIC
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
f1ee37891d
commit
990b183e58
@ -796,7 +796,7 @@ void clear_local_APIC(void)
|
||||
*/
|
||||
void disable_local_APIC(void)
|
||||
{
|
||||
unsigned long value;
|
||||
unsigned int value;
|
||||
|
||||
clear_local_APIC();
|
||||
|
||||
@ -808,6 +808,7 @@ void disable_local_APIC(void)
|
||||
value &= ~APIC_SPIV_APIC_ENABLED;
|
||||
apic_write(APIC_SPIV, value);
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
/*
|
||||
* When LAPIC was disabled by the BIOS and enabled by the kernel,
|
||||
* restore the disabled state.
|
||||
@ -819,6 +820,7 @@ void disable_local_APIC(void)
|
||||
l &= ~MSR_IA32_APICBASE_ENABLE;
|
||||
wrmsr(MSR_IA32_APICBASE, l, h);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -691,6 +691,20 @@ void disable_local_APIC(void)
|
||||
value = apic_read(APIC_SPIV);
|
||||
value &= ~APIC_SPIV_APIC_ENABLED;
|
||||
apic_write(APIC_SPIV, value);
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
/*
|
||||
* When LAPIC was disabled by the BIOS and enabled by the kernel,
|
||||
* restore the disabled state.
|
||||
*/
|
||||
if (enabled_via_apicbase) {
|
||||
unsigned int l, h;
|
||||
|
||||
rdmsr(MSR_IA32_APICBASE, l, h);
|
||||
l &= ~MSR_IA32_APICBASE_ENABLE;
|
||||
wrmsr(MSR_IA32_APICBASE, l, h);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void lapic_shutdown(void)
|
||||
|
Loading…
Reference in New Issue
Block a user