static void avic_kick_target_vcpus(struct kvm *kvm, struct kvm_lapic *source,
                                   u32 icrl, u32 icrh, u32 index)
 {
+       u32 dest = apic_x2apic_mode(source) ? icrh : GET_XAPIC_DEST_FIELD(icrh);
        unsigned long i;
        struct kvm_vcpu *vcpu;
 
         * since entered the guest will have processed pending IRQs at VMRUN.
         */
        kvm_for_each_vcpu(i, vcpu, kvm) {
-               u32 dest;
-
-               if (apic_x2apic_mode(vcpu->arch.apic))
-                       dest = icrh;
-               else
-                       dest = GET_XAPIC_DEST_FIELD(icrh);
-
                if (kvm_apic_match_dest(vcpu, source, icrl & APIC_SHORT_MASK,
                                        dest, icrl & APIC_DEST_MASK)) {
                        vcpu->arch.apic->irr_pending = true;