KVM: VMX: Split out the non-virtualization part of vmx_interrupt_blocked()
authorSean Christopherson <seanjc@google.com>
Fri, 7 Jun 2024 17:26:06 +0000 (10:26 -0700)
committerSean Christopherson <seanjc@google.com>
Fri, 28 Jun 2024 15:59:05 +0000 (08:59 -0700)
commit322a569c4b4188a0da2812f9e952780ce09b74ba
treecde3bac52e2274f9a378d245adddd9822d7d260d
parent32f55e475ce2c4b8b124d335fcfaf1152ba977a1
KVM: VMX: Split out the non-virtualization part of vmx_interrupt_blocked()

Move the non-VMX chunk of the "interrupt blocked" checks to a separate
helper so that KVM can reuse the code to detect if interrupts are blocked
for L2, e.g. to determine if a virtual interrupt _for L2_ is a valid wake
event.  If L1 disables HLT-exiting for L2, nested APICv is enabled, and L2
HLTs, then L2 virtual interrupts are valid wake events, but if and only if
interrupts are unblocked for L2.

Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240607172609.3205077-4-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/vmx/vmx.c
arch/x86/kvm/vmx/vmx.h