> On Jun 26, 2019, at 5:26 PM, Krish Sadhukhan <krish.sadhukhan@xxxxxxxxxx> wrote: > > > On 6/25/19 5:10 AM, Nadav Amit wrote: >> Do not assume that the local APIC is in a xAPIC mode after reset. >> Instead reset it first, since it might be in x2APIC mode, from which a >> transition in xAPIC is invalid. >> >> Note that we do not use the existing disable_apic() for the matter, >> since it also re-initializes apic_ops. > > > Is there any issue if apic_ops is reset ? > > >> Signed-off-by: Nadav Amit <nadav.amit@xxxxxxxxx> >> --- >> x86/cstart64.S | 11 +++++++++++ >> 1 file changed, 11 insertions(+) >> >> diff --git a/x86/cstart64.S b/x86/cstart64.S >> index 9791282..03726a6 100644 >> --- a/x86/cstart64.S >> +++ b/x86/cstart64.S >> @@ -118,6 +118,15 @@ MSR_GS_BASE = 0xc0000101 >> wrmsr >> .endm >> +lapic_reset: >> + mov $0x1b, %ecx > > > Why not use MSR_IA32_APICBASE instead of 0x1b ? I don’t remember, but it does require taking care of MSR_GS_BASE. I can include “msr.h” and remove MSR_GS_BASE and MSR_IA32_APICBASE. I’ll add another patch to do so (since MSR_GS_BASE must be taken care of too).