aboutsummaryrefslogtreecommitdiffstats
path: root/virt/kvm/arm/arch_timer.c
diff options
context:
space:
mode:
Diffstat (limited to 'virt/kvm/arm/arch_timer.c')
-rw-r--r--virt/kvm/arm/arch_timer.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/virt/kvm/arm/arch_timer.c b/virt/kvm/arm/arch_timer.c
index 7fc272ecae16..1b1c449ceaf4 100644
--- a/virt/kvm/arm/arch_timer.c
+++ b/virt/kvm/arm/arch_timer.c
@@ -321,14 +321,15 @@ static void kvm_timer_update_irq(struct kvm_vcpu *vcpu, bool new_level,
321 } 321 }
322} 322}
323 323
324/* Only called for a fully emulated timer */
324static void timer_emulate(struct arch_timer_context *ctx) 325static void timer_emulate(struct arch_timer_context *ctx)
325{ 326{
326 bool should_fire = kvm_timer_should_fire(ctx); 327 bool should_fire = kvm_timer_should_fire(ctx);
327 328
328 trace_kvm_timer_emulate(ctx, should_fire); 329 trace_kvm_timer_emulate(ctx, should_fire);
329 330
330 if (should_fire) { 331 if (should_fire != ctx->irq.level) {
331 kvm_timer_update_irq(ctx->vcpu, true, ctx); 332 kvm_timer_update_irq(ctx->vcpu, should_fire, ctx);
332 return; 333 return;
333 } 334 }
334 335