[PATCH v2 16/20] KVM: x86/xen: Convert xen_get_guest_pvclock() to gpc's CLASS() APIs
From: Sean Christopherson
Date: Fri May 29 2026 - 13:48:50 EST
Convert the Xen pvclock reads to the "map local" CLASS() APIs, using a
read-only variants as KVM simply copying data from the pvclock.
No functional change intended.
Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx>
---
arch/x86/kvm/xen.c | 18 ++++--------------
1 file changed, 4 insertions(+), 14 deletions(-)
diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c
index 47750316f132..89daad3fe712 100644
--- a/arch/x86/kvm/xen.c
+++ b/arch/x86/kvm/xen.c
@@ -153,21 +153,11 @@ static int xen_get_guest_pvclock(struct kvm_vcpu *vcpu,
struct gfn_to_pfn_cache *gpc,
unsigned int offset)
{
- int r;
+ CLASS(gpc_map_local_ro, pvclock_map)(gpc, offset + sizeof(*hv_clock));
+ if (IS_ERR(pvclock_map))
+ return PTR_ERR(pvclock_map);
- read_lock(&gpc->lock);
- while (!kvm_gpc_check(gpc, offset + sizeof(*hv_clock))) {
- read_unlock(&gpc->lock);
-
- r = kvm_gpc_refresh(gpc, offset + sizeof(*hv_clock));
- if (r)
- return r;
-
- read_lock(&gpc->lock);
- }
-
- memcpy(hv_clock, gpc->khva + offset, sizeof(*hv_clock));
- read_unlock(&gpc->lock);
+ memcpy(hv_clock, *pvclock_map + offset, sizeof(*hv_clock));
/*
* Sanity check TSC shift+multiplier to verify the guest's view of time
--
2.54.0.823.g6e5bcc1fc9-goog