]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - mm/dmapool.c
mm: move mem_cgroup_uncharge out of __page_cache_release()
[linux.git] / mm / dmapool.c
index 8c94c89a6f7e4adcf24f473953c1c71f8cb1ffcd..fe5d33060415bfcc4eb92e993b0a2b99f628a990 100644 (file)
@@ -378,7 +378,7 @@ void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags,
 #endif
        spin_unlock_irqrestore(&pool->lock, flags);
 
-       if (mem_flags & __GFP_ZERO)
+       if (want_init_on_alloc(mem_flags))
                memset(retval, 0, pool->size);
 
        return retval;
@@ -428,6 +428,8 @@ void dma_pool_free(struct dma_pool *pool, void *vaddr, dma_addr_t dma)
        }
 
        offset = vaddr - page->vaddr;
+       if (want_init_on_free())
+               memset(vaddr, 0, pool->size);
 #ifdef DMAPOOL_DEBUG
        if ((dma - page->dma) != offset) {
                spin_unlock_irqrestore(&pool->lock, flags);