Commit d8ad5553 authored by Lucas Stach's avatar Lucas Stach Committed by Christoph Hellwig

dma-direct: don't truncate dma_required_mask to bus addressing capabilities

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: b4ebe606 (dma-direct: implement complete bus_dma_mask handling)
Signed-off-by: default avatarLucas Stach <l.stach@pengutronix.de>
Tested-by: default avatarAtish Patra <atish.patra@wdc.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent cf14be0b
......@@ -47,9 +47,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;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment