• Ian Campbell's avatar
    xen: events: assume PHYSDEVOP_get_free_pirq exists · 5cad61a6
    Ian Campbell authored
    The find_unbound_pirq is called only from xen_allocate_pirq_msi and
    only if alloc_pirq is true. The only caller which does this is
    xen_hvm_setup_msi_irqs. The use of this function is gated, in
    pci_xen_hvm_init, on XENFEAT_hvm_pirqs.
    
    The PHYSDEVOP_get_free_pirq interfaces was added to the hypervisor in
    22410:be96f6058c05 while XENFEAT_hvm_pirqs was added a couple of
    minutes prior in 22409:6663214f06ac. Therefore we do not need to
    concern ourselves with hypervisors which support XENFEAT_hvm_pirqs but
    not PHYSDEVOP_get_free_pirq.
    
    This eliminates the fallback path in find_unbound_pirq which walks to
    pirq_to_irq array looking for a free pirq. Unlike the
    PHYSDEVOP_get_free_pirq interface this fallback only looks up a free
    pirq but does not reserve it. Removing this fallback will simplify
    locking in the future.
    Signed-off-by: default avatarIan Campbell <ian.campbell@citrix.com>
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    5cad61a6
events.c 36.2 KB