aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/lapic.c
diff options
context:
space:
mode:
authorWanpeng Li <wanpengli@tencent.com>2022-05-20 10:15:18 -0400
committerPaolo Bonzini <pbonzini@redhat.com>2022-05-25 05:12:35 -0400
commit619f51da097952194a5d4d6a6c5f9ef3b9d1b25a (patch)
tree686b699c3d2ff3a71d180f4c6df43ee1e86989f4 /arch/x86/kvm/lapic.c
parentx86/kvm: Alloc dummy async #PF token outside of raw spinlock (diff)
downloadlinux-dev-619f51da097952194a5d4d6a6c5f9ef3b9d1b25a.tar.xz
linux-dev-619f51da097952194a5d4d6a6c5f9ef3b9d1b25a.zip
KVM: LAPIC: Drop pending LAPIC timer injection when canceling the timer
The timer is disarmed when switching between TSC deadline and other modes; however, the pending timer is still in-flight, so let's accurately remove any traces of the previous mode. Fixes: 4427593258 ("KVM: x86: thoroughly disarm LAPIC timer around TSC deadline switch") Signed-off-by: Wanpeng Li <wanpengli@tencent.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kvm/lapic.c')
-rw-r--r--arch/x86/kvm/lapic.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
index a4e9eb329e42..f1bdac3f5aa8 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
@@ -1548,6 +1548,7 @@ static void cancel_apic_timer(struct kvm_lapic *apic)
if (apic->lapic_timer.hv_timer_in_use)
cancel_hv_timer(apic);
preempt_enable();
+ atomic_set(&apic->lapic_timer.pending, 0);
}
static void apic_update_lvtt(struct kvm_lapic *apic)