30 lines
1.1 KiB
Diff
30 lines
1.1 KiB
Diff
|
# Commit fd1864f48d8914fb8eeb6841cd08c2c09b368909
|
||
|
# Date 2014-02-24 12:09:52 +0100
|
||
|
# Author Yang Zhang <yang.z.zhang@Intel.com>
|
||
|
# Committer Jan Beulich <jbeulich@suse.com>
|
||
|
Nested VMX: update nested paging mode on vmexit
|
||
|
|
||
|
Since SVM and VMX use different mechanism to emulate the virtual-vmentry
|
||
|
and virtual-vmexit, it's hard to update the nested paging mode correctly in
|
||
|
common code. So we need to update the nested paging mode in their respective
|
||
|
code path.
|
||
|
SVM already updates the nested paging mode on vmexit. This patch adds the same
|
||
|
logic in VMX side.
|
||
|
|
||
|
Previous discussion is here:
|
||
|
http://lists.xen.org/archives/html/xen-devel/2013-12/msg01759.html
|
||
|
|
||
|
Signed-off-by: Yang Zhang <yang.z.zhang@Intel.com>
|
||
|
Reviewed-by: Christoph Egger <chegger@amazon.de>
|
||
|
|
||
|
--- a/xen/arch/x86/hvm/vmx/vmx.c
|
||
|
+++ b/xen/arch/x86/hvm/vmx/vmx.c
|
||
|
@@ -2541,6 +2541,7 @@ void vmx_vmexit_handler(struct cpu_user_
|
||
|
vcpu_nestedhvm(v).nv_vmswitch_in_progress = 0;
|
||
|
if ( nestedhvm_vcpu_in_guestmode(v) )
|
||
|
{
|
||
|
+ paging_update_nestedmode(v);
|
||
|
if ( nvmx_n2_vmexit_handler(regs, exit_reason) )
|
||
|
goto out;
|
||
|
}
|