]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
KVM: X86: Fix callers of kvm_apic_match_dest() to use correct macros
authorPeter Xu <peterx@redhat.com>
Wed, 4 Dec 2019 19:07:20 +0000 (20:07 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 8 Jan 2020 16:33:15 +0000 (17:33 +0100)
Callers of kvm_apic_match_dest() should always pass in APIC_DEST_*
macros for either dest_mode and short_hand parameters.  Fix up all the
callers of kvm_apic_match_dest() that are not following the rule.

Since at it, rename the parameter from short_hand to shorthand in
kvm_apic_match_dest(), as suggested by Vitaly.

Reported-by: Sean Christopherson <sean.j.christopherson@intel.com>
Reported-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/ioapic.c
arch/x86/kvm/irq_comm.c
arch/x86/kvm/lapic.c
arch/x86/kvm/lapic.h

index e623a4f8d27e84ef0abd6f7b31d2699d41eeb84d..f53daeaaeb37903eda608b5cda9d517a4b2f3114 100644 (file)
@@ -108,8 +108,9 @@ static void __rtc_irq_eoi_tracking_restore_one(struct kvm_vcpu *vcpu)
        union kvm_ioapic_redirect_entry *e;
 
        e = &ioapic->redirtbl[RTC_GSI];
-       if (!kvm_apic_match_dest(vcpu, NULL, 0, e->fields.dest_id,
-                               e->fields.dest_mode))
+       if (!kvm_apic_match_dest(vcpu, NULL, APIC_DEST_NOSHORT,
+                                e->fields.dest_id,
+                                kvm_lapic_irq_dest_mode(!!e->fields.dest_mode)))
                return;
 
        new_val = kvm_apic_pending_eoi(vcpu, e->fields.vector);
@@ -250,8 +251,10 @@ void kvm_ioapic_scan_entry(struct kvm_vcpu *vcpu, ulong *ioapic_handled_vectors)
                if (e->fields.trig_mode == IOAPIC_LEVEL_TRIG ||
                    kvm_irq_has_notifier(ioapic->kvm, KVM_IRQCHIP_IOAPIC, index) ||
                    index == RTC_GSI) {
-                       if (kvm_apic_match_dest(vcpu, NULL, 0,
-                                    e->fields.dest_id, e->fields.dest_mode) ||
+                       u16 dm = kvm_lapic_irq_dest_mode(!!e->fields.dest_mode);
+
+                       if (kvm_apic_match_dest(vcpu, NULL, APIC_DEST_NOSHORT,
+                                               e->fields.dest_id, dm) ||
                            kvm_apic_pending_eoi(vcpu, e->fields.vector))
                                __set_bit(e->fields.vector,
                                          ioapic_handled_vectors);
index 22108ed66a76532a18bad22f8825684cba82c56e..7d083f71fc8ea33916972c934d631631abf0345b 100644 (file)
@@ -417,7 +417,8 @@ void kvm_scan_ioapic_routes(struct kvm_vcpu *vcpu,
 
                        kvm_set_msi_irq(vcpu->kvm, entry, &irq);
 
-                       if (irq.level && kvm_apic_match_dest(vcpu, NULL, 0,
+                       if (irq.level &&
+                           kvm_apic_match_dest(vcpu, NULL, APIC_DEST_NOSHORT,
                                                irq.dest_id, irq.dest_mode))
                                __set_bit(irq.vector, ioapic_handled_vectors);
                }
index 805c18178bbf9744563d5f9a1599ccec3bd67cd3..679692b55f6d8b8e26966e64592fef545eb37a52 100644 (file)
@@ -789,13 +789,13 @@ static u32 kvm_apic_mda(struct kvm_vcpu *vcpu, unsigned int dest_id,
 }
 
 bool kvm_apic_match_dest(struct kvm_vcpu *vcpu, struct kvm_lapic *source,
-                          int short_hand, unsigned int dest, int dest_mode)
+                          int shorthand, unsigned int dest, int dest_mode)
 {
        struct kvm_lapic *target = vcpu->arch.apic;
        u32 mda = kvm_apic_mda(vcpu, dest, source, target);
 
        ASSERT(target);
-       switch (short_hand) {
+       switch (shorthand) {
        case APIC_DEST_NOSHORT:
                if (dest_mode == APIC_DEST_PHYSICAL)
                        return kvm_apic_match_physical_addr(target, mda);
index 5a9f29ed9a4ba18055587bf31eaaff41e234813b..ec730ce7a3444a4a6981706e3344392f5922c379 100644 (file)
@@ -83,7 +83,7 @@ int kvm_lapic_reg_write(struct kvm_lapic *apic, u32 reg, u32 val);
 int kvm_lapic_reg_read(struct kvm_lapic *apic, u32 offset, int len,
                       void *data);
 bool kvm_apic_match_dest(struct kvm_vcpu *vcpu, struct kvm_lapic *source,
-                          int short_hand, unsigned int dest, int dest_mode);
+                          int shorthand, unsigned int dest, int dest_mode);
 int kvm_apic_compare_prio(struct kvm_vcpu *vcpu1, struct kvm_vcpu *vcpu2);
 bool __kvm_apic_update_irr(u32 *pir, void *regs, int *max_irr);
 bool kvm_apic_update_irr(struct kvm_vcpu *vcpu, u32 *pir, int *max_irr);