> -----Original Message----- > From: Thomas Gleixner [mailto:[email protected]] > Sent: Friday, September 8, 2017 10:09 AM > To: Stephen Hemminger <[email protected]> > Cc: LKML <[email protected]>; Stephen Hemminger > <[email protected]>; Simon Xiao <[email protected]>; KY > Srinivasan <[email protected]>; Haiyang Zhang > <[email protected]>; Steven Rostedt <[email protected]>; Peter > Zijlstra <[email protected]>; Linus Torvalds <torvalds@linux- > foundation.org>; Josh Poimboeuf <[email protected]>; H. Peter Anvin > <[email protected]>; Denys Vlasenko <[email protected]>; Brian Gerst > <[email protected]>; Borislav Petkov <[email protected]>; Andy Lutomirski > <[email protected]> > 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" <[email protected]> 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 <[email protected]> > > > Signed-off-by: Thomas Gleixner <[email protected]> > > > > This fixes it, thanks. > > > > Tested-by: Stephen Hemminger <[email protected]> > > 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 >

