diff options
author | Dong, Eddie <eddie.dong@intel.com> | 2009-03-31 11:03:45 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2009-06-10 04:48:36 -0400 |
commit | 20c466b56168ddccf034c136510d73e4a0e18605 (patch) | |
tree | 92da7e4f5daab7ed5573b64819e8b1389d1c1287 /arch/x86/kvm/x86.c | |
parent | 93ba03c2e2aba23b042cc15eef83b7a66d3ac17a (diff) |
KVM: Use rsvd_bits_mask in load_pdptrs()
Also remove bit 5-6 from rsvd_bits_mask per latest SDM.
Signed-off-by: Eddie Dong <Eddie.Dong@intel.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/x86.c')
-rw-r--r-- | arch/x86/kvm/x86.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 7fe83fe145f9..70ee81e50d99 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c | |||
@@ -234,7 +234,8 @@ int load_pdptrs(struct kvm_vcpu *vcpu, unsigned long cr3) | |||
234 | goto out; | 234 | goto out; |
235 | } | 235 | } |
236 | for (i = 0; i < ARRAY_SIZE(pdpte); ++i) { | 236 | for (i = 0; i < ARRAY_SIZE(pdpte); ++i) { |
237 | if ((pdpte[i] & 1) && (pdpte[i] & 0xfffffff0000001e6ull)) { | 237 | if (is_present_pte(pdpte[i]) && |
238 | (pdpte[i] & vcpu->arch.mmu.rsvd_bits_mask[0][2])) { | ||
238 | ret = 0; | 239 | ret = 0; |
239 | goto out; | 240 | goto out; |
240 | } | 241 | } |