diff options
author | Avi Kivity <avi@qumranet.com> | 2007-05-31 11:24:09 -0400 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2007-07-16 05:05:44 -0400 |
commit | b64b3763a5b3868e85330c891e1a30189dcde9b1 (patch) | |
tree | 906df8e5b7b43b0b2ef19a4ab57eeaee40f9d21a | |
parent | fd97dc516c372982f9c3637e20b131e1f55ac2f6 (diff) |
KVM: MMU: Don't cache guest access bits in the shadow page table
This was once used to avoid accessing the guest pte when upgrading
the shadow pte from read-only to read-write. But usually we need
to set the guest pte dirty or accessed bits anyway, so this wasn't
really exploited.
Signed-off-by: Avi Kivity <avi@qumranet.com>
-rw-r--r-- | drivers/kvm/mmu.c | 8 | ||||
-rw-r--r-- | drivers/kvm/paging_tmpl.h | 1 |
2 files changed, 0 insertions, 9 deletions
diff --git a/drivers/kvm/mmu.c b/drivers/kvm/mmu.c index b47391ffe549..986d01294f3b 100644 --- a/drivers/kvm/mmu.c +++ b/drivers/kvm/mmu.c | |||
@@ -97,14 +97,6 @@ static int dbg = 1; | |||
97 | #define PT_SHADOW_PS_MARK (1ULL << PT_FIRST_AVAIL_BITS_SHIFT) | 97 | #define PT_SHADOW_PS_MARK (1ULL << PT_FIRST_AVAIL_BITS_SHIFT) |
98 | #define PT_SHADOW_IO_MARK (1ULL << PT_FIRST_AVAIL_BITS_SHIFT) | 98 | #define PT_SHADOW_IO_MARK (1ULL << PT_FIRST_AVAIL_BITS_SHIFT) |
99 | 99 | ||
100 | #define PT_SHADOW_WRITABLE_SHIFT (PT_FIRST_AVAIL_BITS_SHIFT + 1) | ||
101 | #define PT_SHADOW_WRITABLE_MASK (1ULL << PT_SHADOW_WRITABLE_SHIFT) | ||
102 | |||
103 | #define PT_SHADOW_USER_SHIFT (PT_SHADOW_WRITABLE_SHIFT + 1) | ||
104 | #define PT_SHADOW_USER_MASK (1ULL << (PT_SHADOW_USER_SHIFT)) | ||
105 | |||
106 | #define PT_SHADOW_BITS_OFFSET (PT_SHADOW_WRITABLE_SHIFT - PT_WRITABLE_SHIFT) | ||
107 | |||
108 | #define VALID_PAGE(x) ((x) != INVALID_PAGE) | 100 | #define VALID_PAGE(x) ((x) != INVALID_PAGE) |
109 | 101 | ||
110 | #define PT64_LEVEL_BITS 9 | 102 | #define PT64_LEVEL_BITS 9 |
diff --git a/drivers/kvm/paging_tmpl.h b/drivers/kvm/paging_tmpl.h index b17a4b783cd4..adc1206cf659 100644 --- a/drivers/kvm/paging_tmpl.h +++ b/drivers/kvm/paging_tmpl.h | |||
@@ -219,7 +219,6 @@ static void FNAME(set_pte_common)(struct kvm_vcpu *vcpu, | |||
219 | 219 | ||
220 | spte |= PT_PRESENT_MASK | PT_ACCESSED_MASK | PT_DIRTY_MASK; | 220 | spte |= PT_PRESENT_MASK | PT_ACCESSED_MASK | PT_DIRTY_MASK; |
221 | spte |= *gpte & PT64_NX_MASK; | 221 | spte |= *gpte & PT64_NX_MASK; |
222 | spte |= access_bits << PT_SHADOW_BITS_OFFSET; | ||
223 | if (!dirty) | 222 | if (!dirty) |
224 | access_bits &= ~PT_WRITABLE_MASK; | 223 | access_bits &= ~PT_WRITABLE_MASK; |
225 | 224 | ||