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 | ||
