dma-direct: don't check swiotlb=force in dma_direct_map_resource
authorChristoph Hellwig <hch@lst.de>
Tue, 19 Nov 2019 16:35:36 +0000 (17:35 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 26 Jan 2020 09:01:08 +0000 (10:01 +0100)
[ Upstream commit 4268ac6ae5870af10a7417b22990d615f72f77e2 ]

When mapping resources we can't just use swiotlb ram for bounce
buffering.  Switch to a direct dma_capable check instead.

Fixes: cfced786969c ("dma-mapping: remove the default map_resource implementation")
Reported-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
kernel/dma/direct.c

index 8402b29..867fd72 100644 (file)
@@ -375,7 +375,7 @@ dma_addr_t dma_direct_map_resource(struct device *dev, phys_addr_t paddr,
 {
        dma_addr_t dma_addr = paddr;
 
-       if (unlikely(!dma_direct_possible(dev, dma_addr, size))) {
+       if (unlikely(!dma_capable(dev, dma_addr, size))) {
                report_addr(dev, dma_addr, size);
                return DMA_MAPPING_ERROR;
        }