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

From: KY Srinivasan
Date: Fri Sep 08 2017 - 13:15:32 EST




> -----Original Message-----
> From: Thomas Gleixner [mailto:tglx@xxxxxxxxxxxxx]
> Sent: Friday, September 8, 2017 10:09 AM
> To: Stephen Hemminger <stephen@xxxxxxxxxxxxxxxxxx>
> Cc: LKML <linux-kernel@xxxxxxxxxxxxxxx>; Stephen Hemminger
> <sthemmin@xxxxxxxxxxxxx>; Simon Xiao <sixiao@xxxxxxxxxxxxx>; KY
> Srinivasan <kys@xxxxxxxxxxxxx>; Haiyang Zhang
> <haiyangz@xxxxxxxxxxxxx>; Steven Rostedt <rostedt@xxxxxxxxxxx>; Peter
> Zijlstra <peterz@xxxxxxxxxxxxx>; Linus Torvalds <torvalds@linux-
> foundation.org>; Josh Poimboeuf <jpoimboe@xxxxxxxxxx>; H. Peter Anvin
> <hpa@xxxxxxxxx>; Denys Vlasenko <dvlasenk@xxxxxxxxxx>; Brian Gerst
> <brgerst@xxxxxxxxx>; Borislav Petkov <bp@xxxxxxxxx>; Andy Lutomirski
> <luto@xxxxxxxxxx>
> Subject: Re: [PATCH] x86/idt: Unbreak MS HyperV hypercall vector install
>
> 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?

No specific reason other than that was the way I had coded it up initially. I will send in a patch to
fix that.

Regards,

K. Y
>
> Thanks,
>
> tglx
>