Re: use generic DMA mapping code in powerpc V4

From: Christoph Hellwig
Date: Fri Nov 30 2018 - 05:32:26 EST


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)