diff options
| -rw-r--r-- | mm/dmapool.c | 12 | 
1 files changed, 8 insertions, 4 deletions
diff --git a/mm/dmapool.c b/mm/dmapool.c index 34aaac451a9..b1f0885dda2 100644 --- a/mm/dmapool.c +++ b/mm/dmapool.c @@ -37,6 +37,10 @@  #include <linux/types.h>  #include <linux/wait.h> +#if defined(CONFIG_DEBUG_SLAB) || defined(CONFIG_SLUB_DEBUG_ON) +#define DMAPOOL_DEBUG 1 +#endif +  struct dma_pool {		/* the pool */  	struct list_head page_list;  	spinlock_t lock; @@ -216,7 +220,7 @@ static struct dma_page *pool_alloc_page(struct dma_pool *pool, gfp_t mem_flags)  	page->vaddr = dma_alloc_coherent(pool->dev, pool->allocation,  					 &page->dma, mem_flags);  	if (page->vaddr) { -#ifdef	CONFIG_DEBUG_SLAB +#ifdef	DMAPOOL_DEBUG  		memset(page->vaddr, POOL_POISON_FREED, pool->allocation);  #endif  		pool_initialise_page(pool, page); @@ -239,7 +243,7 @@ static void pool_free_page(struct dma_pool *pool, struct dma_page *page)  {  	dma_addr_t dma = page->dma; -#ifdef	CONFIG_DEBUG_SLAB +#ifdef	DMAPOOL_DEBUG  	memset(page->vaddr, POOL_POISON_FREED, pool->allocation);  #endif  	dma_free_coherent(pool->dev, pool->allocation, page->vaddr, dma); @@ -336,7 +340,7 @@ void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags,  	page->offset = *(int *)(page->vaddr + offset);  	retval = offset + page->vaddr;  	*handle = offset + page->dma; -#ifdef	CONFIG_DEBUG_SLAB +#ifdef	DMAPOOL_DEBUG  	memset(retval, POOL_POISON_ALLOCATED, pool->size);  #endif   done: @@ -391,7 +395,7 @@ void dma_pool_free(struct dma_pool *pool, void *vaddr, dma_addr_t dma)  	}  	offset = vaddr - page->vaddr; -#ifdef	CONFIG_DEBUG_SLAB +#ifdef	DMAPOOL_DEBUG  	if ((dma - page->dma) != offset) {  		if (pool->dev)  			dev_err(pool->dev,  |