On Tue, May 12, 2026, Jim Mattson wrote: > On Tue, May 12, 2026 at 2:33 PM Sean Christopherson <[email protected]> wrote: > > From: Sean Christopherson <[email protected]> > > Date: Tue, 12 May 2026 14:20:47 -0700 > > Subject: [PATCH 1/3] KVM: x86: Consolidate CPUID fault handling for emulator > > and interception logic > > > > Extract the logic for emulating CPUID faulting (where CPUID #GPs at CPL>0 > > outside of SMM) into a dedicated helper and use the helper for both the > > full emulator and the intercepted-CPUID paths. > > > > Opportunistically drop kvm_require_cpl(), as kvm_require_cpl() was the one > > and only user. > > > > No functional change intended. > > > > Signed-off-by: Sean Christopherson <[email protected]> > > --- > > arch/x86/include/asm/kvm_host.h | 1 - > > arch/x86/kvm/cpuid.c | 5 +++-- > > arch/x86/kvm/cpuid.h | 8 ++++++++ > > arch/x86/kvm/emulate.c | 6 +----- > > arch/x86/kvm/kvm_emulate.h | 1 + > > arch/x86/kvm/x86.c | 18 ++++++------------ > > 6 files changed, 19 insertions(+), 20 deletions(-) > > > > diff --git a/arch/x86/include/asm/kvm_host.h > > b/arch/x86/include/asm/kvm_host.h > > index c470e40a00aa..a9005c61619b 100644 > > --- a/arch/x86/include/asm/kvm_host.h > > +++ b/arch/x86/include/asm/kvm_host.h > > @@ -2285,7 +2285,6 @@ void kvm_requeue_exception(struct kvm_vcpu *vcpu, > > unsigned int nr, > > void kvm_inject_page_fault(struct kvm_vcpu *vcpu, struct x86_exception > > *fault); > > void kvm_inject_emulated_page_fault(struct kvm_vcpu *vcpu, > > struct x86_exception *fault); > > -bool kvm_require_cpl(struct kvm_vcpu *vcpu, int required_cpl); > > bool kvm_require_dr(struct kvm_vcpu *vcpu, int dr); > > > > static inline int __kvm_irq_line_state(unsigned long *irq_state, > > diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c > > index e69156b54cff..1c95d1fa3ead 100644 > > --- a/arch/x86/kvm/cpuid.c > > +++ b/arch/x86/kvm/cpuid.c > > @@ -2161,9 +2161,10 @@ int kvm_emulate_cpuid(struct kvm_vcpu *vcpu) > > { > > u32 eax, ebx, ecx, edx; > > > > - if (!is_smm(vcpu) && cpuid_fault_enabled(vcpu) && > > - !kvm_require_cpl(vcpu, 0)) > > + if (!kvm_is_cpuid_allowed(vcpu)) { > > + kvm_queue_exception_e(vcpu, GP_VECTOR, 0); > > return 1; > > + } > > That's so much better! > > Will you drop this in when applying, or should I send a V3?
Go ahead and send a v3. It slots in easy enough, but I'm trying not to get into the habit of applying pseudo-posted patches.

