]> 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)
commitb6b3d281302b1c420ab74d73623b26d5264aeedc
tree4c7ac214945a84ad9117c5da2e7f215a377a0feb
parent8b74f4f4576ba4882ca9e92e5c3794c2476fd0af
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