use generic DMA mapping code in powerpc V4

Christoph Hellwig hch at lst.de
Fri Nov 30 21:32:22 AEDT 2018


Hi Rui,

can you check if the patch below fixes the issue for you?

diff --git a/arch/powerpc/sysdev/dart_iommu.c b/arch/powerpc/sysdev/dart_iommu.c
index 2e24fc87ed84..809797dbe169 100644
--- a/arch/powerpc/sysdev/dart_iommu.c
+++ b/arch/powerpc/sysdev/dart_iommu.c
@@ -392,7 +392,9 @@ static void pci_dma_dev_setup_dart(struct pci_dev *dev)
 
 static bool iommu_bypass_supported_dart(struct pci_dev *dev, u64 mask)
 {
-	return dart_is_u4 && dart_device_on_pcie(&dev->dev);
+	return dart_is_u4 &&
+		dart_device_on_pcie(&dev->dev) &&
+		mask >= DMA_BIT_MASK(40);
 }
 
 void __init iommu_init_early_dart(struct pci_controller_ops *controller_ops)


More information about the Linuxppc-dev mailing list