iommu/dart: Exclude MSI doorbell from PCIe device IOVA range
authorMarc Zyngier <maz@kernel.org>
Wed, 29 Sep 2021 16:38:41 +0000 (17:38 +0100)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 4 Nov 2021 21:29:30 +0000 (16:29 -0500)
commit946d619fa25f55483206befb035fed6a99fbe7b5
tree808c519bd2557ea4061f34426800d59d94d8875d
parent476c41ed4597512f9da334be8ddf2fb2262d3057
iommu/dart: Exclude MSI doorbell from PCIe device IOVA range

The MSI doorbell on Apple HW can be any address in the low 4GB range.
However, the MSI write is matched by the PCIe block before hitting the
iommu. It must thus be excluded from the IOVA range that is assigned to any
PCIe device.

Link: https://lore.kernel.org/r/20210929163847.2807812-9-maz@kernel.org
Tested-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Sven Peter <sven@svenpeter.dev>
drivers/iommu/apple-dart.c
drivers/pci/controller/Kconfig
drivers/pci/controller/pcie-apple.c