KVM: x86: Allow marking an exception as reinjected
commitce7ddec4bbbc08f0c2901cc103773aed864b09fd
authorJoerg Roedel <joerg.roedel@amd.com>
Thu, 22 Apr 2010 10:33:13 +0000 (22 12:33 +0200)
committerAvi Kivity <avi@redhat.com>
Mon, 17 May 2010 09:19:26 +0000 (17 12:19 +0300)
treed1cc4b3d0cd472ff30c3c796e6537dd41ec4e268
parentc2c63a493924e09a1984d1374a0e60dfd54fc0b0
KVM: x86: Allow marking an exception as reinjected

This patch adds logic to kvm/x86 which allows to mark an
injected exception as reinjected. This allows to remove an
ugly hack from svm_complete_interrupts that prevented
exceptions from being reinjected at all in the nested case.
The hack was necessary because an reinjected exception into
the nested guest could cause a nested vmexit emulation. But
reinjected exceptions must not intercept. The downside of
the hack is that a exception that in injected could get
lost.
This patch fixes the problem and puts the code for it into
generic x86 files because. Nested-VMX will likely have the
same problem and could reuse the code.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/include/asm/kvm_host.h
arch/x86/kvm/svm.c
arch/x86/kvm/vmx.c
arch/x86/kvm/x86.c