KVM: x86/xen: Use kvm_read_guest_virt() instead of open-coding it badly
authorDavid Woodhouse <dwmw@amazon.co.uk>
Mon, 26 Dec 2022 12:03:16 +0000 (12:03 +0000)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 27 Dec 2022 11:01:48 +0000 (06:01 -0500)
commit92c58965e9656dc6e682a8ffe520fac0fb256d13
treef00eb77063528a2e6df6fd47b57f20c08fdedbbb
parent385407a69d5140825d4cdab814cbf128ba63a64a
KVM: x86/xen: Use kvm_read_guest_virt() instead of open-coding it badly

In particular, we shouldn't assume that being contiguous in guest virtual
address space means being contiguous in guest *physical* address space.

In dropping the manual calls to kvm_mmu_gva_to_gpa_system(), also drop
the srcu_read_lock() that was around them. All call sites are reached
from kvm_xen_hypercall() which is called from the handle_exit function
with the read lock already held.

       536395260 ("KVM: x86/xen: handle PV timers oneshot mode")
       1a65105a5 ("KVM: x86/xen: handle PV spinlocks slowpath")

Fixes: 2fd6df2f2 ("KVM: x86/xen: intercept EVTCHNOP_send from guests")
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Message-Id: <20221226120320.1125390-2-dwmw2@infradead.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/xen.c