KVM: x86: Remove WARN sanity check on hypervisor timer vs. UNINITIALIZED vCPU
authorSean Christopherson <seanjc@google.com>
Tue, 8 Aug 2023 23:20:57 +0000 (16:20 -0700)
committerSean Christopherson <seanjc@google.com>
Thu, 17 Aug 2023 18:30:43 +0000 (11:30 -0700)
commit7b0151caf73a656b75b550e361648430233455a0
tree2970b631ba9addcf89ab10f2a98a52e979282234
parent765da7fe0e76ed41eea9514433f4ca8cdb5312b1
KVM: x86: Remove WARN sanity check on hypervisor timer vs. UNINITIALIZED vCPU

Drop the WARN in KVM_RUN that asserts that KVM isn't using the hypervisor
timer, a.k.a. the VMX preemption timer, for a vCPU that is in the
UNINITIALIZIED activity state.  The intent of the WARN is to sanity check
that KVM won't drop a timer interrupt due to an unexpected transition to
UNINITIALIZED, but unfortunately userspace can use various ioctl()s to
force the unexpected state.

Drop the sanity check instead of switching from the hypervisor timer to a
software based timer, as the only reason to switch to a software timer
when a vCPU is blocking is to ensure the timer interrupt wakes the vCPU,
but said interrupt isn't a valid wake event for vCPUs in UNINITIALIZED
state *and* the interrupt will be dropped in the end.

Reported-by: Yikebaer Aizezi <yikebaer61@gmail.com>
Closes: https://lore.kernel.org/all/CALcu4rbFrU4go8sBHk3FreP+qjgtZCGcYNpSiEXOLm==qFv7iQ@mail.gmail.com
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Link: https://lore.kernel.org/r/20230808232057.2498287-1-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/x86.c