Messages in this thread | | | From | Haiyang Zhang <> | Subject | RE: [PATCH] x86/idt: Unbreak MS HyperV hypercall vector install | Date | Fri, 8 Sep 2017 16:12:42 +0000 |
| |
> -----Original Message----- > From: Thomas Gleixner [mailto:tglx@linutronix.de] > Sent: Friday, September 8, 2017 4:20 AM > To: LKML <linux-kernel@vger.kernel.org> > Cc: Stephen Hemminger <sthemmin@microsoft.com>; Simon Xiao > <sixiao@microsoft.com>; KY Srinivasan <kys@microsoft.com>; Haiyang Zhang > <haiyangz@microsoft.com>; Steven Rostedt <rostedt@goodmis.org>; Peter > Zijlstra <peterz@infradead.org>; Linus Torvalds <torvalds@linux- > foundation.org>; Josh Poimboeuf <jpoimboe@redhat.com>; H. Peter Anvin > <hpa@zytor.com>; Denys Vlasenko <dvlasenk@redhat.com>; Brian Gerst > <brgerst@gmail.com>; Borislav Petkov <bp@alien8.de>; Andy Lutomirski > <luto@kernel.org> > Subject: [PATCH] x86/idt: Unbreak MS HyperV hypercall vector install > > 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@microsoft.com> > Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Thanks for the quick response. I tested the patch and the kernel boots up on Hyper-V now.
Reviewed-and-Tested-by: Haiyang Zhang <haiyangz@microsoft.com>
| |