aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/include/asm/kvm_host.h1
-rw-r--r--arch/x86/kvm/mmu.c6
-rw-r--r--arch/x86/kvm/paging_tmpl.h2
3 files changed, 2 insertions, 7 deletions
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index 37bd730ff852..f08314f303e0 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -336,7 +336,6 @@ struct kvm_vcpu_arch {
336 gfn_t last_pte_gfn; 336 gfn_t last_pte_gfn;
337 337
338 struct { 338 struct {
339 gfn_t gfn; /* presumed gfn during guest pte update */
340 pfn_t pfn; /* pfn corresponding to that gfn */ 339 pfn_t pfn; /* pfn corresponding to that gfn */
341 unsigned long mmu_seq; 340 unsigned long mmu_seq;
342 } update_pte; 341 } update_pte;
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index d5455b1b725f..91a194667432 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -3228,7 +3228,6 @@ static void mmu_guess_page_from_pte_write(struct kvm_vcpu *vcpu, gpa_t gpa,
3228 kvm_release_pfn_clean(pfn); 3228 kvm_release_pfn_clean(pfn);
3229 return; 3229 return;
3230 } 3230 }
3231 vcpu->arch.update_pte.gfn = gfn;
3232 vcpu->arch.update_pte.pfn = pfn; 3231 vcpu->arch.update_pte.pfn = pfn;
3233} 3232}
3234 3233
@@ -3275,9 +3274,8 @@ void kvm_mmu_pte_write(struct kvm_vcpu *vcpu, gpa_t gpa,
3275 3274
3276 /* 3275 /*
3277 * Assume that the pte write on a page table of the same type 3276 * Assume that the pte write on a page table of the same type
3278 * as the current vcpu paging mode. This is nearly always true 3277 * as the current vcpu paging mode since we update the sptes only
3279 * (might be false while changing modes). Note it is verified later 3278 * when they have the same mode.
3280 * by update_pte().
3281 */ 3279 */
3282 if ((is_pae(vcpu) && bytes == 4) || !new) { 3280 if ((is_pae(vcpu) && bytes == 4) || !new) {
3283 /* Handle a 32-bit guest writing two halves of a 64-bit gpte */ 3281 /* Handle a 32-bit guest writing two halves of a 64-bit gpte */
diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
index 6bccc24c4181..b3862eeabb8a 100644
--- a/arch/x86/kvm/paging_tmpl.h
+++ b/arch/x86/kvm/paging_tmpl.h
@@ -339,8 +339,6 @@ static void FNAME(update_pte)(struct kvm_vcpu *vcpu, struct kvm_mmu_page *sp,
339 339
340 pgprintk("%s: gpte %llx spte %p\n", __func__, (u64)gpte, spte); 340 pgprintk("%s: gpte %llx spte %p\n", __func__, (u64)gpte, spte);
341 pte_access = sp->role.access & FNAME(gpte_access)(vcpu, gpte); 341 pte_access = sp->role.access & FNAME(gpte_access)(vcpu, gpte);
342 if (gpte_to_gfn(gpte) != vcpu->arch.update_pte.gfn)
343 return;
344 pfn = vcpu->arch.update_pte.pfn; 342 pfn = vcpu->arch.update_pte.pfn;
345 if (is_error_pfn(pfn)) 343 if (is_error_pfn(pfn))
346 return; 344 return;