30 lines
1.1 KiB
Diff
30 lines
1.1 KiB
Diff
|
# HG changeset patch
|
||
|
# User Keir Fraser <keir@xen.org>
|
||
|
# Date 1292954974 0
|
||
|
# Node ID b5418c045d029e8bf5eadfd4e1ef0b1822da7186
|
||
|
# Parent ff1b80ccecd9ed049cc694ab117100e83eab179f
|
||
|
x86 hvm ept: Remove EPT guest linear address validation
|
||
|
|
||
|
For EPT violation resulting from an attempt to load the guest PDPTEs
|
||
|
as part of the execution of the MOV CR instruction, the EPT_GLA_VALID
|
||
|
is not valid. This situation should not happen in most situation,
|
||
|
since we always populate guest memory. But this is not ture for PAE
|
||
|
guest under the PoD/Page sharing situation. In that situation, a page
|
||
|
pointed by CR3 may be un-populated, and we need handle it in such
|
||
|
situation.
|
||
|
|
||
|
Signed-off-by: Jiang, Yunhong <yunhong.jiang@intel.com>
|
||
|
|
||
|
--- a/xen/arch/x86/hvm/vmx/vmx.c
|
||
|
+++ b/xen/arch/x86/hvm/vmx/vmx.c
|
||
|
@@ -2129,8 +2129,7 @@ static void ept_handle_violation(unsigne
|
||
|
__trace_var(TRC_HVM_NPF, 0, sizeof(_d), (unsigned char *)&_d);
|
||
|
}
|
||
|
|
||
|
- if ( (qualification & EPT_GLA_VALID) &&
|
||
|
- hvm_hap_nested_page_fault(gfn) )
|
||
|
+ if ( hvm_hap_nested_page_fault(gfn) )
|
||
|
return;
|
||
|
|
||
|
/* Everything else is an error. */
|