• Cédric Le Goater's avatar
    powerpc/xive: Change IRQ domain to a tree domain · 8e80a73f
    Cédric Le Goater authored
    Commit 4f86a06e ("irqdomain: Make normal and nomap irqdomains
    exclusive") introduced an IRQ_DOMAIN_FLAG_NO_MAP flag to isolate the
    'nomap' domains still in use under the powerpc arch. With this new
    flag, the revmap_tree of the IRQ domain is not used anymore. This
    change broke the support of shared LSIs [1] in the XIVE driver because
    it was relying on a lookup in the revmap_tree to query previously
    mapped interrupts. Linux now creates two distinct IRQ mappings on the
    same HW IRQ which can lead to unexpected behavior in the drivers.
    
    The XIVE IRQ domain is not a direct mapping domain and its HW IRQ
    interrupt number space is rather large : 1M/socket on POWER9 and
    POWER10, change the XIVE driver to use a 'tree' domain type instead.
    
    [1] For instance, a linux KVM guest with virtio-rng and virtio-balloon
        devices.
    
    Fixes: 4f86a06e ("irqdomain: Make normal and nomap irqdomains exclusive")
    Cc: stable@vger.kernel.org # v5.14+
    Signed-off-by: default avatarCédric Le Goater <clg@kaod.org>
    Tested-by: default avatarGreg Kurz <groug@kaod.org>
    Acked-by: default avatarMarc Zyngier <maz@kernel.org>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20211116134022.420412-1-clg@kaod.org
    8e80a73f
Kconfig 227 Bytes