On Fri, Nov 17, 2023 at 08:26:33PM +0800, Li RongQing wrote: > Static key kvm_has_noapic_vcpu should be reduced when fail > to create vcpu, this patch fixes it > > Signed-off-by: Li RongQing <lirongqing@xxxxxxxxx> > --- > arch/x86/kvm/x86.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index 41cce50..2a22e66 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -11957,7 +11957,10 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu) > kfree(vcpu->arch.mci_ctl2_banks); > free_page((unsigned long)vcpu->arch.pio_data); > fail_free_lapic: > - kvm_free_lapic(vcpu); > + if (!lapic_in_kernel(vcpu)) > + static_branch_dec(&kvm_has_noapic_vcpu); > + else > + kvm_free_lapic(vcpu); > fail_mmu_destroy: > kvm_mmu_destroy(vcpu); > return r; It is good to me. But is it better also take the chance to tidy up kvm_arch_vcpu_destroy(): kvm_free_lapic(vcpu); idx = srcu_read_lock(&vcpu->kvm->srcu); kvm_mmu_destroy(vcpu); srcu_read_unlock(&vcpu->kvm->srcu, idx); free_page((unsigned long)vcpu->arch.pio_data); kvfree(vcpu->arch.cpuid_entries); if (!lapic_in_kernel(vcpu)) static_branch_dec(&kvm_has_noapic_vcpu); Thanks, Yilun > -- > 2.9.4 > >