aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/mmu.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kvm/mmu.c')
-rw-r--r--arch/x86/kvm/mmu.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 978f402006ee..10fbed126b11 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -214,13 +214,12 @@ EXPORT_SYMBOL_GPL(kvm_mmu_set_mmio_spte_mask);
214#define MMIO_GEN_LOW_SHIFT 10 214#define MMIO_GEN_LOW_SHIFT 10
215#define MMIO_GEN_LOW_MASK ((1 << MMIO_GEN_LOW_SHIFT) - 2) 215#define MMIO_GEN_LOW_MASK ((1 << MMIO_GEN_LOW_SHIFT) - 2)
216#define MMIO_GEN_MASK ((1 << MMIO_GEN_SHIFT) - 1) 216#define MMIO_GEN_MASK ((1 << MMIO_GEN_SHIFT) - 1)
217#define MMIO_MAX_GEN ((1 << MMIO_GEN_SHIFT) - 1)
218 217
219static u64 generation_mmio_spte_mask(unsigned int gen) 218static u64 generation_mmio_spte_mask(unsigned int gen)
220{ 219{
221 u64 mask; 220 u64 mask;
222 221
223 WARN_ON(gen > MMIO_MAX_GEN); 222 WARN_ON(gen & ~MMIO_GEN_MASK);
224 223
225 mask = (gen & MMIO_GEN_LOW_MASK) << MMIO_SPTE_GEN_LOW_SHIFT; 224 mask = (gen & MMIO_GEN_LOW_MASK) << MMIO_SPTE_GEN_LOW_SHIFT;
226 mask |= ((u64)gen >> MMIO_GEN_LOW_SHIFT) << MMIO_SPTE_GEN_HIGH_SHIFT; 225 mask |= ((u64)gen >> MMIO_GEN_LOW_SHIFT) << MMIO_SPTE_GEN_HIGH_SHIFT;
@@ -263,13 +262,13 @@ static bool is_mmio_spte(u64 spte)
263 262
264static gfn_t get_mmio_spte_gfn(u64 spte) 263static gfn_t get_mmio_spte_gfn(u64 spte)
265{ 264{
266 u64 mask = generation_mmio_spte_mask(MMIO_MAX_GEN) | shadow_mmio_mask; 265 u64 mask = generation_mmio_spte_mask(MMIO_GEN_MASK) | shadow_mmio_mask;
267 return (spte & ~mask) >> PAGE_SHIFT; 266 return (spte & ~mask) >> PAGE_SHIFT;
268} 267}
269 268
270static unsigned get_mmio_spte_access(u64 spte) 269static unsigned get_mmio_spte_access(u64 spte)
271{ 270{
272 u64 mask = generation_mmio_spte_mask(MMIO_MAX_GEN) | shadow_mmio_mask; 271 u64 mask = generation_mmio_spte_mask(MMIO_GEN_MASK) | shadow_mmio_mask;
273 return (spte & ~mask) & ~PAGE_MASK; 272 return (spte & ~mask) & ~PAGE_MASK;
274} 273}
275 274