diff options
Diffstat (limited to 'virt/kvm/arm/arch_timer.c')
-rw-r--r-- | virt/kvm/arm/arch_timer.c | 5 |
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 */ | ||
324 | static void timer_emulate(struct arch_timer_context *ctx) | 325 | static 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 | ||