linux/arch/x86/kvm
Glauber Costa 310b5d306c KVM: Deal with interrupt shadow state for emulated instructions
We currently unblock shadow interrupt state when we skip an instruction,
but failing to do so when we actually emulate one. This blocks interrupts
in key instruction blocks, in particular sti; hlt; sequences

If the instruction emulated is an sti, we have to block shadow interrupts.
The same goes for mov ss. pop ss also needs it, but we don't currently
emulate it.

Without this patch, I cannot boot gpxe option roms at vmx machines.
This is described at https://bugzilla.redhat.com/show_bug.cgi?id=494469

Signed-off-by: Glauber Costa <glommer@redhat.com>
CC: H. Peter Anvin <hpa@zytor.com>
CC: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
2009-06-10 11:48:54 +03:00
..
i8254.c KVM: PIT: fix count read and mode 0 handling 2009-06-10 11:48:39 +03:00
i8254.h KVM: unify part of generic timer handling 2009-06-10 11:48:25 +03:00
i8259.c KVM: fix sparse warnings: context imbalance 2009-03-24 11:03:13 +02:00
irq.c KVM: Make kvm_cpu_(has|get)_interrupt() work for userspace irqchip too 2009-06-10 11:48:45 +03:00
irq.h KVM: make irq ack notifications aware of routing table 2009-03-24 11:03:08 +02:00
Kconfig Merge branch 'tracing/core-v2' into tracing-for-linus 2009-04-02 00:49:02 +02:00
kvm_cache_regs.h KVM: x86: accessors for guest registers 2008-10-15 10:13:57 +02:00
kvm_svm.h KVM: x86: Virtualize debug registers 2009-03-24 11:02:49 +02:00
kvm_timer.h KVM: unify part of generic timer handling 2009-06-10 11:48:25 +03:00
lapic.c KVM: fix apic_debug instances 2009-06-10 11:48:50 +03:00
lapic.h KVM: APIC: get rid of deliver_bitmask 2009-06-10 11:48:27 +03:00
Makefile KVM: unify part of generic timer handling 2009-06-10 11:48:25 +03:00
mmu.c KVM: Replace get_mt_mask_shift with get_mt_mask 2009-06-10 11:48:49 +03:00
mmu.h KVM: Use rsvd_bits_mask in load_pdptrs() 2009-06-10 11:48:36 +03:00
paging_tmpl.h KVM: MMU: remove global page optimization logic 2009-06-10 11:48:39 +03:00
svm.c KVM: Replace ->drop_interrupt_shadow() by ->set_interrupt_shadow() 2009-06-10 11:48:54 +03:00
timer.c KVM: unify part of generic timer handling 2009-06-10 11:48:25 +03:00
tss.h KVM: x86: hardware task switching support 2008-04-27 12:00:39 +03:00
vmx.c KVM: Replace ->drop_interrupt_shadow() by ->set_interrupt_shadow() 2009-06-10 11:48:54 +03:00
x86.c KVM: Deal with interrupt shadow state for emulated instructions 2009-06-10 11:48:54 +03:00
x86.h KVM: Remove kvm_push_irq() 2009-06-10 11:48:47 +03:00
x86_emulate.c KVM: Deal with interrupt shadow state for emulated instructions 2009-06-10 11:48:54 +03:00