linux_dsm_epyc7002/arch/x86/kvm
Nadav Amit 39f062ff51 KVM: x86: Generate #UD when memory operand is required
Certain x86 instructions that use modrm operands only allow memory operand
(i.e., mod012), and cause a #UD exception otherwise. KVM ignores this fact.
Currently, the instructions that are such and are emulated by KVM are MOVBE,
MOVNTPS, MOVNTPD and MOVNTI.  MOVBE is the most blunt example, since it may be
emulated by the host regardless of MMIO.

The fix introduces a new group for handling such instructions, marking mod3 as
illegal instruction.

Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
Reviewed-by: Radim Krčmář <rkrcmar@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2014-12-04 15:29:04 +01:00
..
assigned-dev.c KVM: x86: move device assignment out of kvm_host.h 2014-11-24 16:53:50 +01:00
assigned-dev.h KVM: x86: move device assignment out of kvm_host.h 2014-11-24 16:53:50 +01:00
cpuid.c kvm: x86: mask out XSAVES 2014-11-23 18:33:37 +01:00
cpuid.h KVM: x86: Warn if guest virtual address space is not 48-bits 2014-09-24 14:07:48 +02:00
emulate.c KVM: x86: Generate #UD when memory operand is required 2014-12-04 15:29:04 +01:00
i8254.c KVM: x86: Improve thread safety in pit 2014-10-24 13:21:14 +02:00
i8254.h KVM: fold kvm_pit_timer into kvm_kpit_state 2012-08-01 00:21:07 -03:00
i8259.c KVM: inject ExtINT interrupt before APIC interrupts 2012-12-13 23:05:21 -02:00
ioapic.c kvm: remove CONFIG_X86 #ifdefs from files formerly shared with ia64 2014-11-21 18:07:26 +01:00
ioapic.h kvm: x86: move ioapic.c and irq_comm.c back to arch/x86/ 2014-11-21 18:02:37 +01:00
iommu.c KVM: x86: move device assignment out of kvm_host.h 2014-11-24 16:53:50 +01:00
irq_comm.c kvm: remove CONFIG_X86 #ifdefs from files formerly shared with ia64 2014-11-21 18:07:26 +01:00
irq.c KVM: nVMX: fix "acknowledge interrupt on exit" when APICv is in use 2014-08-05 15:00:24 +02:00
irq.h KVM: switch to symbolic name for irq_states size 2012-07-20 16:12:16 -03:00
Kconfig KVM: Give IRQFD its own separate enabling Kconfig option 2014-08-05 14:26:28 +02:00
kvm_cache_regs.h KVM: MMU: Do not unconditionally read PDPTE from guest memory 2011-09-25 19:18:01 +03:00
lapic.c kvm: x86: avoid warning about potential shift wrapping bug 2014-11-24 16:53:50 +01:00
lapic.h KVM: x86: optimize some accesses to LVTT and SPIV 2014-11-03 12:07:32 +01:00
Makefile kvm: x86: move assigned-dev.c and iommu.c to arch/x86/ 2014-11-23 18:33:36 +01:00
mmu_audit.c arch/x86: replace strict_strto calls 2014-08-08 15:57:28 -07:00
mmu.c kvm: x86: vmx: remove MMIO_MAX_GEN 2014-11-18 11:12:18 +01:00
mmu.h KVM: mmio: cleanup kvm_set_mmio_spte_mask 2014-09-03 10:04:10 +02:00
mmutrace.h x86/kvm: Resolve shadow warnings in macro expansion 2014-07-31 16:33:29 +02:00
paging_tmpl.h KVM: x86: Wrong assertion on paging_tmpl.h 2014-10-24 13:30:37 +02:00
pmu.c KVM: x86: Clarify PMU related features bit manipulation 2014-08-20 13:01:25 +02:00
svm.c kvm: svm: move WARN_ON in svm_adjust_tsc_offset 2014-11-13 11:56:11 +01:00
trace.h kvm: x86: add trace event for pvclock updates 2014-11-08 08:20:55 +01:00
tss.h KVM: x86: hardware task switching support 2008-04-27 12:00:39 +03:00
vmx.c kvm: x86: vmx: cleanup handle_ept_violation 2014-11-18 11:07:53 +01:00
x86.c kvm: x86: avoid warning about potential shift wrapping bug 2014-11-24 16:53:50 +01:00
x86.h KVM: x86: Enable Intel AVX-512 for guest 2014-11-03 12:07:30 +01:00