powerpc/dma: fix an off-by-one in dma_capable
We need to compare the last byte in the dma range and not the one after it for the bus_dma_mask, just like we do for the regular dma_mask. Fix this cleanly by merging the two comparisms into one. Signed-off-by: Christoph Hellwig <hch@lst.de> Tested-by: Christian Zigotzky <chzigotzky@xenosoft.de> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
74194cdaac
commit
9b18114c0b
|
@ -4,15 +4,11 @@
|
||||||
|
|
||||||
static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size)
|
static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_SWIOTLB
|
|
||||||
if (dev->bus_dma_mask && addr + size > dev->bus_dma_mask)
|
|
||||||
return false;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (!dev->dma_mask)
|
if (!dev->dma_mask)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return addr + size - 1 <= *dev->dma_mask;
|
return addr + size - 1 <=
|
||||||
|
min_not_zero(*dev->dma_mask, dev->bus_dma_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline dma_addr_t __phys_to_dma(struct device *dev, phys_addr_t paddr)
|
static inline dma_addr_t __phys_to_dma(struct device *dev, phys_addr_t paddr)
|
||||||
|
|
Loading…
Reference in New Issue