[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1 of 7] APIC BUG: fix potential Protection Fault during shutdown
>>> On 13.06.11 at 19:02, Andrew Cooper <andrew.cooper3@xxxxxxxxxx> wrote: > This is a rare case, but if the BIOS is set to uniprocessor, and Xen > is booted with 'lapic x2apic', Xen will switch into x2apic mode, which > will cause a protection fault when disabling the local APIC. This > leads to a general protection fault as this code is also in the fault > handler. > > When x2apic mode is enabled, the only tranlsation which does > not result in a protection fault is to clear both the EN and EXTD > bits, which is safe to do in all cases, even if you are in xapic > mode rather than x2apic mode. > > The linux code from which this is derrived is protected by an > if ( ! x2apic_mode ...) clause which is how they get away with it. > > Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Acked-by: Jan Beulich <jbeulich@xxxxxxxxxx> You may want to submit a similar patch to Linux (which is what this code got derived from), so that in the future no-one will get surprised that this is different in Xen and Linux. Otoh, interestingly this is being done only for x86-32 in Linux, and I highly doubt any X2APIC capable machine would boot with APIC disabled. Jan > diff -r 37c77bacb52a -r 076c3034c8c7 xen/arch/x86/apic.c > --- a/xen/arch/x86/apic.c Mon May 23 17:38:28 2011 +0100 > +++ b/xen/arch/x86/apic.c Mon Jun 13 17:45:43 2011 +0100 > @@ -340,7 +340,8 @@ void disable_local_APIC(void) > if (enabled_via_apicbase) { > uint64_t msr_content; > rdmsrl(MSR_IA32_APICBASE, msr_content); > - wrmsrl(MSR_IA32_APICBASE, msr_content & ~MSR_IA32_APICBASE_ENABLE); > + wrmsrl(MSR_IA32_APICBASE, msr_content & > + ~(MSR_IA32_APICBASE_ENABLE|MSR_IA32_APICBASE_EXTD)); > } > } > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |