From 2d9f22df829359a4b745c6dde97cba75b13bc7ad Mon Sep 17 00:00:00 2001 From: Matthieu CASTET Date: Tue, 11 Dec 2012 16:01:31 -0800 Subject: [PATCH] --- yaml --- r: 338751 b: refs/heads/master c: 5de55b265a13bc263c823bbe05d87d2c5e785f6f h: refs/heads/master i: 338749: ff78b5243646e851e8e2059ce1d6eaa801856ecc 338747: eff0bcb2ed21cac3b2ca3be1b72635a4f99381e2 338743: af4bbb9f68bbb1e7f8473f9f2ab1ff50833f4793 338735: fdc9d7271d0fb8dc14885f439fbb1b1bb9c073ae 338719: df1b992985d97af98e5ccd1ddd1cba13736dea76 338687: 4410a75fd104ce7ab0d0cd0cdede597be497f9c6 v: v3 --- [refs] | 2 +- trunk/mm/dmapool.c | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 647b8e33bf20..683aa9cc9a0e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9ff4868e3051d9128a24dd330bed32011a11421d +refs/heads/master: 5de55b265a13bc263c823bbe05d87d2c5e785f6f diff --git a/trunk/mm/dmapool.c b/trunk/mm/dmapool.c index da1b0f0b8709..c69781e97cf9 100644 --- a/trunk/mm/dmapool.c +++ b/trunk/mm/dmapool.c @@ -332,6 +332,30 @@ void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags, retval = offset + page->vaddr; *handle = offset + page->dma; #ifdef DMAPOOL_DEBUG + { + int i; + u8 *data = retval; + /* page->offset is stored in first 4 bytes */ + for (i = sizeof(page->offset); i < pool->size; i++) { + if (data[i] == POOL_POISON_FREED) + continue; + if (pool->dev) + dev_err(pool->dev, + "dma_pool_alloc %s, %p (corruped)\n", + pool->name, retval); + else + pr_err("dma_pool_alloc %s, %p (corruped)\n", + pool->name, retval); + + /* + * Dump the first 4 bytes even if they are not + * POOL_POISON_FREED + */ + print_hex_dump(KERN_ERR, "", DUMP_PREFIX_OFFSET, 16, 1, + data, pool->size, 1); + break; + } + } memset(retval, POOL_POISON_ALLOCATED, pool->size); #endif spin_unlock_irqrestore(&pool->lock, flags);