• Robin Murphy's avatar
    PCI/MSI: Assume MSIs use real Requester ID, not an alias · 235b2c77
    Robin Murphy authored
    Currently, we handle all DMA aliases equally when calculating MSI requester
    IDs for the generic infrastructure. This turns out to be the wrong thing to
    do in the face of pure DMA quirks like those of Marvell SATA cards, where
    in the usual case the last thing seen in the alias walk is the DMA phantom
    function: we end up configuring the MSI doorbell to expect that alias, then
    find we have no interrupts since the MSI writes still come from the 'real'
    RID, thus get filtered out and ignored.
    
    Improve the alias walk to only account for the topological aliases that
    matter, based on the logic from the Intel IRQ remapping code.
    Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Acked-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    235b2c77
msi.c 38.5 KB