This is a note to let you know that I've just added the patch titled KVM: x86: Don't inhibit APICv/AVIC on xAPIC ID "change" if APIC is disabled to the 6.2-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: kvm-x86-don-t-inhibit-apicv-avic-on-xapic-id-change-if-apic-is-disabled.patch and it can be found in the queue-6.2 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From a58a66afc464d6d2ec294cd3102f36f3652e7ce4 Mon Sep 17 00:00:00 2001 From: Sean Christopherson <seanjc@xxxxxxxxxx> Date: Fri, 6 Jan 2023 01:12:38 +0000 Subject: KVM: x86: Don't inhibit APICv/AVIC on xAPIC ID "change" if APIC is disabled From: Sean Christopherson <seanjc@xxxxxxxxxx> commit a58a66afc464d6d2ec294cd3102f36f3652e7ce4 upstream. Don't inhibit APICv/AVIC due to an xAPIC ID mismatch if the APIC is hardware disabled. The ID cannot be consumed while the APIC is disabled, and the ID is guaranteed to be set back to the vcpu_id when the APIC is hardware enabled (architectural behavior correctly emulated by KVM). Fixes: 3743c2f02517 ("KVM: x86: inhibit APICv/AVIC on changes to APIC ID or APIC base") Cc: stable@xxxxxxxxxxxxxxx Reviewed-by: Maxim Levitsky <mlevitsk@xxxxxxxxxx> Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx> Message-Id: <20230106011306.85230-6-seanjc@xxxxxxxxxx> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- arch/x86/kvm/lapic.c | 3 +++ 1 file changed, 3 insertions(+) --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -2072,6 +2072,9 @@ static void kvm_lapic_xapic_id_updated(s { struct kvm *kvm = apic->vcpu->kvm; + if (!kvm_apic_hw_enabled(apic)) + return; + if (KVM_BUG_ON(apic_x2apic_mode(apic), kvm)) return; Patches currently in stable-queue which might be from seanjc@xxxxxxxxxx are queue-6.2/kvm-svm-hyper-v-placate-modpost-section-mismatch-error.patch queue-6.2/kvm-svm-flush-the-current-tlb-when-activating-avic.patch queue-6.2/x86-virt-force-gif-1-prior-to-disabling-svm-for-reboot-flows.patch queue-6.2/kvm-x86-inject-gp-if-wrmsr-sets-reserved-bits-in-apic-self-ipi.patch queue-6.2/x86-reboot-disable-svm-not-just-vmx-when-stopping-cpus.patch queue-6.2/kvm-svm-process-icr-on-avic-ipi-delivery-failure-due-to-invalid-target.patch queue-6.2/kvm-x86-don-t-inhibit-apicv-avic-if-xapic-id-mismatch-is-due-to-32-bit-id.patch queue-6.2/x86-reboot-disable-virtualization-in-an-emergency-if-svm-is-supported.patch queue-6.2/kvm-svm-don-t-put-load-avic-when-setting-virtual-apic-mode.patch queue-6.2/x86-crash-disable-virt-in-core-nmi-crash-handler-to-avoid-double-shootdown.patch queue-6.2/kvm-register-dev-kvm-as-the-_very_-last-thing-during-initialization.patch queue-6.2/kvm-x86-don-t-inhibit-apicv-avic-on-xapic-id-change-if-apic-is-disabled.patch queue-6.2/kvm-destroy-target-device-if-coalesced-mmio-unregistration-fails.patch queue-6.2/kvm-svm-fix-potential-overflow-in-sev-s-send-receive_update_data.patch queue-6.2/kvm-x86-blindly-get-current-x2apic-reg-value-on-nodecode-write-traps.patch queue-6.2/kvm-x86-purge-highest-isr-cache-when-updating-apicv-state.patch queue-6.2/kvm-x86-inject-gp-on-x2apic-wrmsr-that-sets-reserved-bits-63-32.patch queue-6.2/kvm-vmx-fix-crash-due-to-uninitialized-current_vmcs.patch