]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
arch/x86/kernel/pci-dma.c: avoid duplicated memset in dma_generic_alloc_coherent()
authorAkinobu Mita <akinobu.mita@gmail.com>
Thu, 22 May 2014 00:42:46 +0000 (10:42 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Thu, 22 May 2014 00:42:46 +0000 (10:42 +1000)
Fix a duplicated memset that was introduced by the patch
x86-make-dma_alloc_coherent-return-zeroed-memory-if-cma-is-enabled.patch
in -mm tree, and this change should be folded into it.

If dma_generic_alloc_coherent() is called with __GFP_ZERO, it does a
duplicated memset to the memory area allocated by alloc_pages_node() with
__GFP_ZERO.  This change fixes that inefficiency by clearing __GFP_ZERO
bit in gfp flages before calling alloc_pages_node().  Note that
dma_generic_alloc_coherent() always returns zeroed memory.

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Don Dutile <ddutile@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Andi Kleen <andi@firstfloor.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
arch/x86/kernel/pci-dma.c

index a0ffe44325bfb73627916c891b9579a8e122cb36..e5f4e9629e61d04b55d5b538d395683b9400acd6 100644 (file)
@@ -97,6 +97,7 @@ void *dma_generic_alloc_coherent(struct device *dev, size_t size,
 
        dma_mask = dma_alloc_coherent_mask(dev, flag);
 
+       flag &= ~__GFP_ZERO;
 again:
        page = NULL;
        /* CMA can be used only in the context which permits sleeping */