Message ID | 488c970c5ae.f93db6b@auth.smtp.1and1.co.uk (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
On Wed, 2016-27-07 at 14:41:29 UTC, Darren Stevens wrote: > Commit 817820b0226a ("powerpc/iommu: Support "hybrid" iommu/direct DMA > ops for coherent_mask < dma_mask) adds a check of coherent_dma_mask > for dma allocations. > Unfortunately current PASemi code does not set this value for the DMA > engine, which ends up with the default value of 0xffffffff, the result > is on a PASemi system with >2Gb ram and iommu enabled the the onboard > ethernet stops working due to an inability to allocate memory. > Add an initialisation to pci_dma_dev_setup_pasemi() > > Signed-off-by: Darren Stevens <darren@stevens-zone.net> Applied to powerpc fixes, thanks. https://git.kernel.org/powerpc/c/416f37d0816b9720b8227953e5 cheers
diff --git a/arch/powerpc/platforms/pasemi/iommu.c b/arch/powerpc/platforms/pasemi/iommu.c index c929644..81b334a 100644 --- a/arch/powerpc/platforms/pasemi/iommu.c +++ b/arch/powerpc/platforms/pasemi/iommu.c @@ -187,6 +187,11 @@ static void pci_dma_dev_setup_pasemi(struct pci_dev *dev) if (dev->vendor == 0x1959 && dev->device == 0xa007 && !firmware_has_feature(FW_FEATURE_LPAR)) { dev->dev.archdata.dma_ops = &dma_direct_ops; + /* + * Set the coherent DMA mask to prevent the iommu + * being used unnecessarily + */ + dev->dev.coherent_dma_mask = DMA_BIT_MASK(44); return; } #endif
Commit 817820b0226a ("powerpc/iommu: Support "hybrid" iommu/direct DMA ops for coherent_mask < dma_mask) adds a check of coherent_dma_mask for dma allocations. Unfortunately current PASemi code does not set this value for the DMA engine, which ends up with the default value of 0xffffffff, the result is on a PASemi system with >2Gb ram and iommu enabled the the onboard ethernet stops working due to an inability to allocate memory. Add an initialisation to pci_dma_dev_setup_pasemi() Signed-off-by: Darren Stevens <darren@stevens-zone.net> ---