diff options
author | Christoph Hellwig <hch@lst.de> | 2020-08-14 12:26:24 +0200 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2020-08-14 16:27:00 +0200 |
commit | 9420139f516d7fbc248ce17f35275cb005ed98ea (patch) | |
tree | 4131b1f91327535de62d8fedf9cb3ef09adcc9ce /drivers/iommu/dma-iommu.c | |
parent | a1d21081a60dfb7fddf4a38b66d9cef603b317a9 (diff) | |
download | linux-9420139f516d7fbc248ce17f35275cb005ed98ea.tar.bz2 |
dma-pool: fix coherent pool allocations for IOMMU mappings
When allocating coherent pool memory for an IOMMU mapping we don't care
about the DMA mask. Move the guess for the initial GFP mask into the
dma_direct_alloc_pages and pass dma_coherent_ok as a function pointer
argument so that it doesn't get applied to the IOMMU case.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Tested-by: Amit Pundir <amit.pundir@linaro.org>
Diffstat (limited to 'drivers/iommu/dma-iommu.c')
-rw-r--r-- | drivers/iommu/dma-iommu.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c index 4959f5df21bd..5141d49a046b 100644 --- a/drivers/iommu/dma-iommu.c +++ b/drivers/iommu/dma-iommu.c @@ -1035,8 +1035,8 @@ static void *iommu_dma_alloc(struct device *dev, size_t size, if (IS_ENABLED(CONFIG_DMA_DIRECT_REMAP) && !gfpflags_allow_blocking(gfp) && !coherent) - cpu_addr = dma_alloc_from_pool(dev, PAGE_ALIGN(size), &page, - gfp); + page = dma_alloc_from_pool(dev, PAGE_ALIGN(size), &cpu_addr, + gfp, NULL); else cpu_addr = iommu_dma_alloc_pages(dev, size, &page, gfp, attrs); if (!cpu_addr) |