From: Huaisheng Ye <yehs1@xxxxxxxxxx> Use __GFP_ZONE_MASK to replace (__GFP_DMA | __GFP_HIGHMEM | __GFP_DMA32). ___GFP_DMA, ___GFP_HIGHMEM and ___GFP_DMA32 have been deleted from GFP bitmasks, the bottom three bits of GFP mask is reserved for storing encoded zone number. __GFP_DMA, __GFP_HIGHMEM and __GFP_DMA32 should not be operated with each others by OR. Use GFP_NORMAL() to clear bottom 3 bits of GFP bitmaks. Signed-off-by: Huaisheng Ye <yehs1@xxxxxxxxxx> Cc: Christoph Hellwig <hch@xxxxxx> Cc: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> Cc: Robin Murphy <robin.murphy@xxxxxxx> Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx> --- include/linux/dma-mapping.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h index f8ab1c0..8fe524d 100644 --- a/include/linux/dma-mapping.h +++ b/include/linux/dma-mapping.h @@ -519,7 +519,7 @@ static inline void *dma_alloc_attrs(struct device *dev, size_t size, return cpu_addr; /* let the implementation decide on the zone to allocate from: */ - flag &= ~(__GFP_DMA | __GFP_DMA32 | __GFP_HIGHMEM); + flag = GFP_NORMAL(flag); if (!arch_dma_alloc_attrs(&dev, &flag)) return NULL; -- 1.8.3.1