dma-direct: document the zone selection logic
What we are doing here isn't quite obvious, so add a comment explaining it. Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
99c65fa7c5
commit
79ac32a427
|
@ -84,7 +84,14 @@ static gfp_t __dma_direct_optimal_gfp_mask(struct device *dev, u64 dma_mask,
|
||||||
else
|
else
|
||||||
*phys_mask = dma_to_phys(dev, dma_mask);
|
*phys_mask = dma_to_phys(dev, dma_mask);
|
||||||
|
|
||||||
/* GFP_DMA32 and GFP_DMA are no ops without the corresponding zones: */
|
/*
|
||||||
|
* Optimistically try the zone that the physical address mask falls
|
||||||
|
* into first. If that returns memory that isn't actually addressable
|
||||||
|
* we will fallback to the next lower zone and try again.
|
||||||
|
*
|
||||||
|
* Note that GFP_DMA32 and GFP_DMA are no ops without the corresponding
|
||||||
|
* zones.
|
||||||
|
*/
|
||||||
if (*phys_mask <= DMA_BIT_MASK(ARCH_ZONE_DMA_BITS))
|
if (*phys_mask <= DMA_BIT_MASK(ARCH_ZONE_DMA_BITS))
|
||||||
return GFP_DMA;
|
return GFP_DMA;
|
||||||
if (*phys_mask <= DMA_BIT_MASK(32))
|
if (*phys_mask <= DMA_BIT_MASK(32))
|
||||||
|
|
Loading…
Reference in New Issue