All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] x86/idt: Unbreak MS HyperV hypercall vector install
@ 2017-09-08  8:19 Thomas Gleixner
  2017-09-08 16:12 ` Haiyang Zhang
  2017-09-08 16:57 ` Stephen Hemminger
  0 siblings, 2 replies; 5+ messages in thread
From: Thomas Gleixner @ 2017-09-08  8:19 UTC (permalink / raw)
  To: LKML
  Cc: Stephen Hemminger, Simon Xiao, KY Srinivasan, Haiyang Zhang,
	Steven Rostedt, Peter Zijlstra, Linus Torvalds, Josh Poimboeuf,
	H. Peter Anvin, Denys Vlasenko, Brian Gerst, Borislav Petkov,
	Andy Lutomirski

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>

---
 arch/x86/kernel/idt.c |    1 -
 1 file changed, 1 deletion(-)

--- a/arch/x86/kernel/idt.c
+++ b/arch/x86/kernel/idt.c
@@ -320,7 +320,6 @@ void __init idt_setup_apic_and_irq_gates
 
 	for_each_clear_bit_from(i, used_vectors, NR_VECTORS) {
 #ifdef CONFIG_X86_LOCAL_APIC
-		set_bit(i, used_vectors);
 		set_intr_gate(i, spurious_interrupt);
 #else
 		entry = irq_entries_start + 8 * (i - FIRST_EXTERNAL_VECTOR);

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-09-08 17:15 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-08  8:19 [PATCH] x86/idt: Unbreak MS HyperV hypercall vector install Thomas Gleixner
2017-09-08 16:12 ` Haiyang Zhang
2017-09-08 16:57 ` Stephen Hemminger
2017-09-08 17:09   ` Thomas Gleixner
2017-09-08 17:15     ` KY Srinivasan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.