diff options
author | Avi Kivity <avi@qumranet.com> | 2007-10-11 09:08:41 -0400 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2008-01-30 10:52:51 -0500 |
commit | c22e3514fceb2f514093ce1d19a2f660ac7347ae (patch) | |
tree | 7df0ec47014030c2dd126d25be868306ea87a7ec /drivers/kvm/paging_tmpl.h | |
parent | e3c5e7ec9efe0ebd47fa812cc86f01c51905edf6 (diff) |
KVM: MMU: Fix nx access bit for huge pages
We must set the bit before the shift, otherwise the wrong bit gets set.
Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'drivers/kvm/paging_tmpl.h')
-rw-r--r-- | drivers/kvm/paging_tmpl.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/kvm/paging_tmpl.h b/drivers/kvm/paging_tmpl.h index da36e48fd026..e07cb2e006c2 100644 --- a/drivers/kvm/paging_tmpl.h +++ b/drivers/kvm/paging_tmpl.h | |||
@@ -382,9 +382,9 @@ static u64 *FNAME(fetch)(struct kvm_vcpu *vcpu, gva_t addr, | |||
382 | metaphysical = 1; | 382 | metaphysical = 1; |
383 | hugepage_access = walker->pte; | 383 | hugepage_access = walker->pte; |
384 | hugepage_access &= PT_USER_MASK | PT_WRITABLE_MASK; | 384 | hugepage_access &= PT_USER_MASK | PT_WRITABLE_MASK; |
385 | hugepage_access >>= PT_WRITABLE_SHIFT; | ||
385 | if (walker->pte & PT64_NX_MASK) | 386 | if (walker->pte & PT64_NX_MASK) |
386 | hugepage_access |= (1 << 2); | 387 | hugepage_access |= (1 << 2); |
387 | hugepage_access >>= PT_WRITABLE_SHIFT; | ||
388 | table_gfn = (walker->pte & PT_BASE_ADDR_MASK) | 388 | table_gfn = (walker->pte & PT_BASE_ADDR_MASK) |
389 | >> PAGE_SHIFT; | 389 | >> PAGE_SHIFT; |
390 | } else { | 390 | } else { |