|
@@ -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,
|
|
@@ -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
|