Skip to content

Commit

Permalink
dma-mapping: translate __GFP_NOFAIL to DMA_ATTR_NO_WARN
Browse files Browse the repository at this point in the history
This allows all dma_map_ops instances to entirely rely on
DMA_ATTR_NO_WARN going forward.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Robin Murphy <robin.murphy@arm.com>
  • Loading branch information
Christoph Hellwig committed Oct 9, 2018
1 parent 79ac32a commit 7ed1d91
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions include/linux/dma-mapping.h
Original file line number Diff line number Diff line change
Expand Up @@ -558,9 +558,11 @@ static inline void dma_free_attrs(struct device *dev, size_t size,
}

static inline void *dma_alloc_coherent(struct device *dev, size_t size,
dma_addr_t *dma_handle, gfp_t flag)
dma_addr_t *dma_handle, gfp_t gfp)
{
return dma_alloc_attrs(dev, size, dma_handle, flag, 0);

return dma_alloc_attrs(dev, size, dma_handle, gfp,
(gfp & __GFP_NOWARN) ? DMA_ATTR_NO_WARN : 0);
}

static inline void dma_free_coherent(struct device *dev, size_t size,
Expand Down Expand Up @@ -794,8 +796,12 @@ static inline void dmam_release_declared_memory(struct device *dev)
static inline void *dma_alloc_wc(struct device *dev, size_t size,
dma_addr_t *dma_addr, gfp_t gfp)
{
return dma_alloc_attrs(dev, size, dma_addr, gfp,
DMA_ATTR_WRITE_COMBINE);
unsigned long attrs = DMA_ATTR_NO_WARN;

if (gfp & __GFP_NOWARN)
attrs |= DMA_ATTR_NO_WARN;

return dma_alloc_attrs(dev, size, dma_addr, gfp, attrs);
}
#ifndef dma_alloc_writecombine
#define dma_alloc_writecombine dma_alloc_wc
Expand Down

0 comments on commit 7ed1d91

Please sign in to comment.