From: Lucas Stach Date: Mon, 5 Aug 2019 15:51:53 +0000 (+0200) Subject: dma-direct: don't truncate dma_required_mask to bus addressing capabilities X-Git-Tag: v5.2.12~122 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=4ab6b15a00ca56ecc1ce372478916a611d369151;p=users%2Fdwmw2%2Flinux.git dma-direct: don't truncate dma_required_mask to bus addressing capabilities [ Upstream commit d8ad55538abe443919e20e0bb996561bca9cad84 ] The dma required_mask needs to reflect the actual addressing capabilities needed to handle the whole system RAM. When truncated down to the bus addressing capabilities dma_addressing_limited() will incorrectly signal no limitations for devices which are restricted by the bus_dma_mask. Fixes: b4ebe6063204 (dma-direct: implement complete bus_dma_mask handling) Signed-off-by: Lucas Stach Tested-by: Atish Patra Signed-off-by: Christoph Hellwig Signed-off-by: Sasha Levin --- diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c index 2c2772e9702ab..9912be7a970de 100644 --- a/kernel/dma/direct.c +++ b/kernel/dma/direct.c @@ -55,9 +55,6 @@ u64 dma_direct_get_required_mask(struct device *dev) { u64 max_dma = phys_to_dma_direct(dev, (max_pfn - 1) << PAGE_SHIFT); - if (dev->bus_dma_mask && dev->bus_dma_mask < max_dma) - max_dma = dev->bus_dma_mask; - return (1ULL << (fls64(max_dma) - 1)) * 2 - 1; }