KVM: Do not incorporate page offset into gfn=>pfn cache user address
authorSean Christopherson <seanjc@google.com>
Fri, 29 Apr 2022 21:00:22 +0000 (21:00 +0000)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 25 May 2022 09:23:42 +0000 (05:23 -0400)
Don't adjust the userspace address in the gfn=>pfn cache by the page
offset from the gpa.  KVM should never use the user address directly, and
all KVM operations that translate a user address to something else
require the user address to be page aligned.  Ignoring the offset will
allow the cache to reuse a gfn=>hva translation in the unlikely event
that the page offset of the gpa changes, but the gfn does not.  And more
importantly, not having to (un)adjust the user address will simplify a
future bug fix.

Cc: stable@vger.kernel.org
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20220429210025.3293691-6-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
virt/kvm/pfncache.c

index 40cbe90d52e04283413ca62f5928612eaea57947..05cb0bcbf662a6792be6dc7b7c5f4f351bc88d34 100644 (file)
@@ -179,8 +179,6 @@ int kvm_gfn_to_pfn_cache_refresh(struct kvm *kvm, struct gfn_to_pfn_cache *gpc,
                        ret = -EFAULT;
                        goto out;
                }
-
-               gpc->uhva += page_offset;
        }
 
        /*