Subject: Re: Badness on the Warp

From: Frans Pop <[email-masked]>
Date: Sun, 21 Jun 2009 06:28:33 +0200

On Sunday 21 June 2009, Sean MacLennan wrote:
> I found the source of the badness. The backtrace is correct:
>
> uic_init_one

So that's in arch/powerpc/sysdev/uic.c.

> ___alloc_bootmem
> ___alloc_bootmem_nopanic
> alloc_arch_preferred_bootmem
>
> In alloc_arch_preferred_bootmem we have:
>
> 	if (WARN_ON_ONCE(slab_is_available()))
> 		return kzalloc(size, GFP_NOWAIT);
>
> Since the slab is available (it had better be or the call will return
> NULL), we get the badness message, then a successful return from
> kzalloc.
>
> I believe the author wants something like:
>
> 	if (slab_is_available())
> 		return kzalloc(size, GFP_NOWAIT);
> 	else
> 		WARN_ON_ONCE(1);

Well, I myself have no idea. It could also indicate a bug in the uic code.

But let's CC some people responsible for this code. Pekka recently added 
this WARN that triggers in your case; David and Paul look to be the 
people most involved in the uic code.

Start of the thread is at http://lkml.org/lkml/2009/6/20/165.

Cheers,
FJP