linux/arch/x86/kvm
Takuya Yoshikawa e54cfa97a9 KVM: Fix emulate_sys[call, enter, exit]()'s fault handling
This patch fixes emulate_syscall(), emulate_sysenter() and
emulate_sysexit() to handle injected faults properly.

Even though original code injects faults in these functions,
we cannot handle these unless we use the different return
value from the UNHANDLEABLE case. So this patch use X86EMUL_*
codes instead of -1 and 0 and makes x86_emulate_insn() to
handle these propagated faults.

Be sure that, in x86_emulate_insn(), goto cannot_emulate and
goto done with rc equals X86EMUL_UNHANDLEABLE have same effect.

Signed-off-by: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
2010-03-01 12:36:14 -03:00
..
emulate.c KVM: Fix emulate_sys[call, enter, exit]()'s fault handling 2010-03-01 12:36:14 -03:00
i8254.c KVM: Convert i8254/i8259 locks to raw_spinlocks 2010-03-01 12:36:12 -03:00
i8254.h KVM: Convert i8254/i8259 locks to raw_spinlocks 2010-03-01 12:36:12 -03:00
i8259.c KVM: Convert i8254/i8259 locks to raw_spinlocks 2010-03-01 12:36:12 -03:00
irq.c KVM: Remove irq_pending bitmap 2009-06-10 11:48:57 +03:00
irq.h KVM: Convert i8254/i8259 locks to raw_spinlocks 2010-03-01 12:36:12 -03:00
Kconfig KVM: Add KVM_MMIO kconfig item 2010-03-01 12:35:41 -03:00
kvm_cache_regs.h KVM: Optimize kvm_read_cr[04]_bits() 2010-03-01 12:36:05 -03:00
kvm_timer.h KVM: Use pointer to vcpu instead of vcpu_id in timer code. 2009-09-10 08:32:52 +03:00
lapic.c KVM: Add HYPER-V apic access MSRs 2010-03-01 12:36:00 -03:00
lapic.h KVM: Add HYPER-V apic access MSRs 2010-03-01 12:36:00 -03:00
Makefile KVM: Move assigned device code to own file 2009-12-03 09:32:09 +02:00
mmu.c KVM: x86 emulator: fix memory access during x86 emulation 2010-03-01 12:36:11 -03:00
mmu.h KVM: x86 emulator: fix memory access during x86 emulation 2010-03-01 12:36:11 -03:00
mmutrace.h KVM: Trace shadow page lifecycle 2009-09-10 08:33:10 +03:00
paging_tmpl.h KVM: x86 emulator: fix memory access during x86 emulation 2010-03-01 12:36:11 -03:00
svm.c KVM: Trace failed msr reads and writes 2010-03-01 12:36:06 -03:00
timer.c KVM: Drop useless atomic test from timer function 2009-09-10 08:32:57 +03:00
trace.h KVM: Trace failed msr reads and writes 2010-03-01 12:36:06 -03:00
tss.h KVM: x86: hardware task switching support 2008-04-27 12:00:39 +03:00
vmx.c KVM: VMX: Rename VMX_EPT_IGMT_BIT to VMX_EPT_IPAT_BIT 2010-03-01 12:36:09 -03:00
x86.c KVM: Fix segment descriptor loading 2010-03-01 12:36:14 -03:00
x86.h KVM: Rename vcpu->shadow_efer to efer 2010-03-01 12:36:04 -03:00