]> git.baikalelectronics.ru Git - kernel.git/commit
PCI/MSI: Assume MSIs use real Requester ID, not an alias
authorRobin Murphy <robin.murphy@arm.com>
Tue, 1 Aug 2017 17:59:08 +0000 (18:59 +0100)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 14 Aug 2017 21:01:27 +0000 (16:01 -0500)
commit61a89721c7371f729811f04ea5599cd4bd868930
tree4c7ac214945a84ad9117c5da2e7f215a377a0feb
parent39ca428cb491c5108b239365b7603145dd6df933
PCI/MSI: Assume MSIs use real Requester ID, not an alias

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: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
drivers/pci/msi.c