Messages in this thread | | | From | Dirk Gouders <> | Subject | Re: [Problem] kernel hangs at boot (bisected 892d208bcf) | Date | Fri, 20 Jan 2012 13:14:38 +0100 |
| |
Catalin Marinas <catalin.marinas@arm.com> writes:
> On Thu, Jan 19, 2012 at 08:52:44PM +0000, Dirk Gouders wrote: >> Dirk Gouders <gouders@et.bocholt.fh-gelsenkirchen.de> writes: >> I want to note that in my config CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF is >> set which causes kmemleak_disable() to be called in kmemleak_init(). > > Thanks for the investigation. Could you please try the patch below? > Thanks.
Hi Catalin,
I tested it and that patch solves the problems here.
Thanks a lot for your help,
Dirk
> > From 09e7bd41ff3fd07e4c5eea7bbb0a045921eb5944 Mon Sep 17 00:00:00 2001 > From: Catalin Marinas <catalin.marinas@arm.com> > Date: Fri, 20 Jan 2012 10:42:40 +0000 > Subject: [PATCH] kmemleak: Disable early logging when kmemleak is off by > default > > Commit b6693005 (kmemleak: When the early log buffer is exceeded, report > the actual number) deferred the disabling of the early logging to > kmemleak_init(). However, when CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y, the > early logging was no longer disabled causing __init kmemleak functions > to be called even after the kernel freed the init memory. This patch > disables the early logging during kmemleak_init() if kmemleak is left > disabled. > > Reported-by: Dirk Gouders <gouders@et.bocholt.fh-gelsenkirchen.de> > Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> > --- > mm/kmemleak.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/mm/kmemleak.c b/mm/kmemleak.c > index f9f7310..45eb621 100644 > --- a/mm/kmemleak.c > +++ b/mm/kmemleak.c > @@ -1757,6 +1757,7 @@ void __init kmemleak_init(void) > > #ifdef CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF > if (!kmemleak_skip_disable) { > + atomic_set(&kmemleak_early_log, 0); > kmemleak_disable(); > return; > }
| |