]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
KVM: arm64: Introduce kvm_counter_compute_delta() helper
authorMarc Zyngier <maz@kernel.org>
Tue, 19 Apr 2022 18:27:49 +0000 (19:27 +0100)
committerMarc Zyngier <maz@kernel.org>
Wed, 20 Apr 2022 12:24:44 +0000 (13:24 +0100)
Refactor kvm_timer_compute_delta() and extract a helper that
compute the delta (in ns) between a given timer and an arbitrary
value.

No functional change expected.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20220419182755.601427-5-maz@kernel.org
arch/arm64/kvm/arch_timer.c

index 16dda1a383a6f77ebc08fc2bc494df4bfbcf7ffe..c92a68190f6aac57b44e2176822438cd2cff52fd 100644 (file)
@@ -208,18 +208,16 @@ static irqreturn_t kvm_arch_timer_handler(int irq, void *dev_id)
        return IRQ_HANDLED;
 }
 
-static u64 kvm_timer_compute_delta(struct arch_timer_context *timer_ctx)
+static u64 kvm_counter_compute_delta(struct arch_timer_context *timer_ctx,
+                                    u64 val)
 {
-       u64 cval, now;
-
-       cval = timer_get_cval(timer_ctx);
-       now = kvm_phys_timer_read() - timer_get_offset(timer_ctx);
+       u64 now = kvm_phys_timer_read() - timer_get_offset(timer_ctx);
 
-       if (now < cval) {
+       if (now < val) {
                u64 ns;
 
                ns = cyclecounter_cyc2ns(timecounter->cc,
-                                        cval - now,
+                                        val - now,
                                         timecounter->mask,
                                         &timecounter->frac);
                return ns;
@@ -228,6 +226,11 @@ static u64 kvm_timer_compute_delta(struct arch_timer_context *timer_ctx)
        return 0;
 }
 
+static u64 kvm_timer_compute_delta(struct arch_timer_context *timer_ctx)
+{
+       return kvm_counter_compute_delta(timer_ctx, timer_get_cval(timer_ctx));
+}
+
 static bool kvm_timer_irq_can_fire(struct arch_timer_context *timer_ctx)
 {
        WARN_ON(timer_ctx && timer_ctx->loaded);