KVM: SVM: Fix x2APIC Logical ID calculation for avic_kick_target_vcpus_fast
authorSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Fri, 6 Jan 2023 01:12:46 +0000 (01:12 +0000)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 13 Jan 2023 15:45:26 +0000 (10:45 -0500)
For X2APIC ID in cluster mode, the logical ID is bit [15:0].

Fixes: 603ccef42ce9 ("KVM: x86: SVM: fix avic_kick_target_vcpus_fast")
Cc: Maxim Levitsky <mlevitsk@redhat.com>
Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20230106011306.85230-14-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/svm/avic.c

index f2db002..0f67fd3 100644 (file)
@@ -356,7 +356,7 @@ static int avic_kick_target_vcpus_fast(struct kvm *kvm, struct kvm_lapic *source
 
                if (apic_x2apic_mode(source)) {
                        /* 16 bit dest mask, 16 bit cluster id */
-                       bitmap = dest & 0xFFFF0000;
+                       bitmap = dest & 0xFFFF;
                        cluster = (dest >> 16) << 4;
                } else if (kvm_lapic_get_reg(source, APIC_DFR) == APIC_DFR_FLAT) {
                        /* 8 bit dest mask*/