kernel-ark/arch/x86/kvm
Joerg Roedel cda0008299 KVM: SVM: Restore correct registers after sel_cr0 intercept emulation
This patch implements restoring of the correct rip, rsp, and
rax after the svm emulation in KVM injected a selective_cr0
write intercept into the guest hypervisor. The problem was
that the vmexit is emulated in the instruction emulation
which later commits the registers right after the write-cr0
instruction. So the l1 guest will continue to run with the
l2 rip, rsp and rax resulting in unpredictable behavior.

This patch is not the final word, it is just an easy patch
to fix the issue. The real fix will be done when the
instruction emulator is made aware of nested virtualization.
Until this is done this patch fixes the issue and provides
an easy way to fix this in -stable too.

Cc: stable@kernel.org
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
2010-10-24 10:52:24 +02:00
..
emulate.c KVM: x86 emulator: clean up control flow in x86_emulate_insn() 2010-10-24 10:51:54 +02:00
i8254.c KVM: pit: Do not check pending pit timer in vcpu thread 2010-10-24 10:51:45 +02:00
i8254.h KVM: x86: Introduce a workqueue to deliver PIT timer interrupts 2010-08-01 10:46:49 +03:00
i8259.c KVM: i8259: Make ICW1 conform to spec 2010-10-24 10:51:54 +02:00
irq.c KVM: pit: Do not check pending pit timer in vcpu thread 2010-10-24 10:51:45 +02:00
irq.h KVM: i8259: fix migration 2010-09-08 14:50:58 -03:00
Kconfig KVM: MMU: support disable/enable mmu audit dynamicly 2010-10-24 10:51:56 +02:00
kvm_cache_regs.h KVM: VMX: Enable XSAVE/XRSTOR for guest 2010-08-01 10:46:31 +03:00
kvm_timer.h KVM: arch/x86/kvm/kvm_timer.h checkpatch cleanup 2010-05-17 12:14:42 +03:00
lapic.c KVM: Add mini-API for vcpu->requests 2010-08-01 10:47:05 +03:00
lapic.h KVM: Add HYPER-V apic access MSRs 2010-03-01 12:36:00 -03:00
Makefile
mmu_audit.c KVM: MMU: lower the aduit frequency 2010-10-24 10:51:59 +02:00
mmu.c KVM: MMU: Fix 32 bit legacy paging with NPT 2010-10-24 10:52:23 +02:00
mmu.h KVM: replace x86 kvm n_free_mmu_pages with n_used_mmu_pages 2010-10-24 10:51:18 +02:00
mmutrace.h KVM: MMU: support disable/enable mmu audit dynamicly 2010-10-24 10:51:56 +02:00
paging_tmpl.h KVM: MMU: support disable/enable mmu audit dynamicly 2010-10-24 10:51:56 +02:00
svm.c KVM: SVM: Restore correct registers after sel_cr0 intercept emulation 2010-10-24 10:52:24 +02:00
timer.c KVM: Add mini-API for vcpu->requests 2010-08-01 10:47:05 +03:00
trace.h KVM: Trace emulated instructions 2010-05-17 12:17:35 +03:00
tss.h
vmx.c KVM: x86: Unify TSC logic 2010-10-24 10:51:23 +02:00
x86.c KVM: Fix guest kernel crash on MSR_K7_CLK_CTL 2010-10-24 10:51:55 +02:00
x86.h KVM: x86: Move TSC offset writes to common code 2010-10-24 10:51:22 +02:00