Re: [PATCH] x86/idt: Unbreak MS HyperV hypercall vector install

From: Thomas Gleixner
Date: Fri Sep 08 2017 - 13:09:29 EST


On Fri, 8 Sep 2017, Stephen Hemminger wrote:
> On Fri, 8 Sep 2017 01:19:52 -0700
> "Thomas Gleixner" <tglx@xxxxxxxxxxxxx> wrote:
>
> > The rework of the IDT setup changed the way how unused system gates are
> > accounted. At the end of the gate initialization all unused gates in the
> > system vector area are set to the spurios handler and marked as used for
> > consistency reasons.
> >
> > Marking them as used breaks MS HyperV because it installs its hypercall
> > vector after that point and the installation is guarded by the bit in the
> > used_vectors map. So the hyperv vector stays directed to the spurious
> > interrupt handler.
> >
> > Leave them marked as unused again and unbreak HyperV that way.
> >
> > Fixes: dc20b2d52653 ("x86/idt: Move interrupt gate initialization to IDT
> > code")
> > Reported-by: Stephen Hemminger <sthemmin@xxxxxxxxxxxxx>
> > Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
>
> This fixes it, thanks.
>
> Tested-by: Stephen Hemminger <sthemmin@xxxxxxxxxxxxx>

What's the reason that the vector is not set up early in the boot process?

Thanks,

tglx