Skip to content

Commit

Permalink
dma-direct: document the zone selection logic
Browse files Browse the repository at this point in the history
What we are doing here isn't quite obvious, so add a comment explaining
it.

Signed-off-by: Christoph Hellwig <hch@lst.de>
  • Loading branch information
Christoph Hellwig committed Oct 9, 2018
1 parent 99c65fa commit 79ac32a
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion kernel/dma/direct.c
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,14 @@ static gfp_t __dma_direct_optimal_gfp_mask(struct device *dev, u64 dma_mask,
else
*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))
return GFP_DMA;
if (*phys_mask <= DMA_BIT_MASK(32))
Expand Down

0 comments on commit 79ac32a

Please sign in to comment.