Re: [PATCH] mm/slab.c: check pointer slabp before using it in alloc_slabmgmt()

From: Peter Hurley
Date: Tue Dec 10 2013 - 11:19:15 EST


On 12/10/2013 10:35 AM, Christoph Lameter wrote:
On Tue, 10 Dec 2013, Ethan Zhao wrote:

No, stable 3.12.4 and 3.12.3 need this patch. 3.13RC doesn't
need it anymore.

Hmmm.. Then this commit may have fixed it:

Cross-threaded from [Re: Slab BUG with DEBUG_* options ]

On 12/08/2013 10:00 AM, Meelis Roos wrote:
> ldata alloc change + your second slab patch + slab debug: hang on boot
> after
> console [tty0] enabled, bootconsole disabled
> (after that, I should see all the dmesg again on serial but I do not).

Meelis,

Please grab this patch below and see if it fixes your 'hang on boot'
with Christoph's other slab patch + slab debug.

Regards,
Peter Hurley

commit 0172f779e4314639a8ed440082cfe9e3450954e8
Author: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Date: Wed Oct 30 19:04:00 2013 +0900

slab: fix to calm down kmemleak warning

After using struct page as slab management, we should not call
kmemleak_scan_area(), since struct page isn't the tracking object of
kmemleak. Without this patch and if CONFIG_DEBUG_KMEMLEAK is enabled,
so many kmemleak warnings are printed.

Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
Signed-off-by: Pekka Enberg <penberg@xxxxxx>

diff --git a/mm/slab.c b/mm/slab.c
index af2db76..a8a9349 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -2531,14 +2531,6 @@ static struct freelist *alloc_slabmgmt(struct
kmem_cache *cachep,
/* Slab management obj is off-slab. */
freelist = kmem_cache_alloc_node(cachep->freelist_cache,
local_flags, nodeid);
- /*
- * If the first object in the slab is leaked (it's allocated
- * but no one has a reference to it), we want to make sure
- * kmemleak does not treat the ->s_mem pointer as a reference
- * to the object. Otherwise we will not report the leak.
- */
- kmemleak_scan_area(&page->lru, sizeof(struct list_head),
- local_flags);
if (!freelist)
return NULL;
} else {


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/