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)

Reply via email to