> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index 35d03fcdb8e9..5abea6c73a38 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -9775,6 +9775,7 @@ int kvm_x86_vendor_init(struct kvm_x86_init_ops *ops) > kvm_host.xcr0 = xgetbv(XCR_XFEATURE_ENABLED_MASK); > kvm_caps.supported_xcr0 = kvm_host.xcr0 & KVM_SUPPORTED_XCR0; > } > + kvm_caps.inapplicable_quirks = KVM_X86_CONDITIONAL_QUIRKS; > > rdmsrl_safe(MSR_EFER, &kvm_host.efer); > > @@ -12754,6 +12755,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) > kvm->arch.apic_bus_cycle_ns = APIC_BUS_CYCLE_NS_DEFAULT; > kvm->arch.guest_can_read_msr_platform_info = true; > kvm->arch.enable_pmu = enable_pmu; > + kvm->arch.disabled_quirks = kvm_caps.inapplicable_quirks; Should be kvm->arch.disabled_quirks |= kvm_caps.inapplicable_quirks; Otherwise, it may overwrite the disabled_quirks value set in vm_init hook. > > #if IS_ENABLED(CONFIG_HYPERV) > spin_lock_init(&kvm->arch.hv_root_tdp_lock);