Re: [PATCH 2/3] KVM: SVM: Restore correct registers after sel_cr0intercept emulation

From: Avi Kivity
Date: Thu Sep 02 2010 - 12:02:12 EST


On 09/02/2010 06:29 PM, Joerg Roedel wrote:
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.


Please post a unit test for this.

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.

I agree. We can probably use X86EMUL_PROPAGATE_FAULT to abort emulation, but looking at the code, it will take some refactoring.

--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/