On 12/07/2016 22:09, Radim Krčmář wrote:
> +static bool kvm_apic_map_need_slowpath(struct kvm *kvm, struct kvm_lapic 
> **src,
> +             struct kvm_lapic_irq *irq, struct kvm_apic_map *map)
> +{
> +     if (!map)
> +             return true;
> +
> +     if (kvm->arch.x2apic_broadcast_quirk_disabled) {
> +             if ((irq->dest_id == APIC_BROADCAST &&
> +                             map->mode != KVM_APIC_MODE_X2APIC))
> +                     return true;
> +             if (irq->dest_id == X2APIC_BROADCAST)
> +                     return true;
> +     } else {
> +             bool x2apic_ipi = src && *src && apic_x2apic_mode(*src);
> +             if (irq->dest_id == (x2apic_ipi ?
> +                                  X2APIC_BROADCAST : APIC_BROADCAST))
> +                     return true;
> +     }
> +
> +     return false;
> +}

This isn't the only case where you go through the slowpath.  What about
renaming to kvm_apic_dest_is_broadcast?

Paolo

Reply via email to