Re: Regression: unable to boot after commit bd9240a18edf ("x86/apic: Add TSC_DEADLINE quirk due to errata") - Surface Pro 4 SKL

From: Peter Zijlstra
Date: Tue Dec 19 2017 - 08:15:37 EST


On Tue, Dec 19, 2017 at 06:48:24PM +0800, Zhang Rui wrote:
> On Mon, 2017-12-18 at 21:28 +0100, Peter Zijlstra wrote:
> > Hi, can you see if this makes you Surface boot?
> >
> No, it does not boot.

Bah, staring at the lapic calibrate now, that is a bit of a mess..

> > I tested it on my IVB by making has_legacy_pic() return unconditional
> > true.
> >
> > [    0.024000] tsc: Unable to calibrate against PIT
> > [    0.025000] tsc: using HPET reference calibration
> > [    0.026000] tsc: Detected 2792.451 MHz processor
> >
> > ---
> >
> >
> > diff --git a/arch/x86/include/asm/i8259.h
> > b/arch/x86/include/asm/i8259.h
> > index c8376b40e882..e2cfc4b52ee4 100644
> > --- a/arch/x86/include/asm/i8259.h
> > +++ b/arch/x86/include/asm/i8259.h
> > @@ -69,6 +69,11 @@ struct legacy_pic {
> >  extern struct legacy_pic *legacy_pic;
> >  extern struct legacy_pic null_legacy_pic;
> >  
> > +static inline bool has_legacy_pic(void)
> > +{
> > + return legacy_pic == &null_legacy_pic;
> > +}
> > +
> shouldn't this be
> return legacy_pic == &default_legacy_pic;
> ?

!= &null, but yes, I mess that up.