dmapool: enable debugging for CONFIG_SLUB_DEBUG_ON too
Previously it was only enabled for CONFIG_DEBUG_SLAB. Not hooked into the slub runtime debug configuration, so you currently only get it with CONFIG_SLUB_DEBUG_ON, not plain CONFIG_SLUB_DEBUG Acked-by: Matthew Wilcox <willy@linux.intel.com> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
a43361cf3c
Коммит
b5ee5befa7
12
mm/dmapool.c
12
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,
|
||||
|
|
Загрузка…
Ссылка в новой задаче