lkml.org 
[lkml]   [2013]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] mm/slab.c: check pointer slabp before using it in alloc_slabmgmt()
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@lge.com>
> 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@lge.com>
> Signed-off-by: Pekka Enberg <penberg@iki.fi>
>
> 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 {
>



\
 
 \ /
  Last update: 2013-12-10 17:41    [W:0.074 / U:0.560 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site