Subject: Re: linux-next: build failure after merge of the final tree

From: Steven Rostedt <[email-masked]>
Date: Mon, 09 Jan 2012 16:41:44 -0500

On Mon, 2012-01-09 at 13:35 -0800, David Miller wrote:
> From: Stephen Rothwell <[email-masked]>
> Date: Mon, 9 Jan 2012 16:59:50 +1100
> 
> >> > include/trace/events/kmem.h:267:1: error: implicit declaration of function 'check_trace_callback_type_mm_page_alloc_extfrag' [-Werror=implicit-function-declaration]
> >> > In file included from include/trace/ftrace.h:774:0,
> >> >                  from include/trace/define_trace.h:86,
> >> >                  from include/trace/events/power.h:240,
> >> >                  from kernel/trace/power-traces.c:14:
> >> > include/trace/events/kmem.h: In function 'perf_test_probe_mm_page_pcpu_drain':
> >> > include/trace/events/kmem.h:256:1: error: implicit declaration of function 'check_trace_callback_type_mm_page_pcpu_drain' [-Werror=implicit-function-declaration]
> 
> I think the problem has to do with slab_def.h's explicit inclusion of
> trace/kmem.h
> 
> If this somehow gets included while we are expanding define_trace.h, then
> TRACE_SYSTEM will get redefined and screw up all of the includes that
> define_trace.h is trying to perform for the sake of power.h
> 
> Other architectures probably hit slab_def.h via some earlier includes
> and therefore don't hit this situation like Sparc does.
> 
> Adding an explicit <linux/slab.h> include to power-traces.c indeed fixes
> the build.

Yeah, I have a patch that fixes the bug (removing the
trace/events/kmem.h from slab.h). I'll be posting it as soon as it
finishes my final tests.

-- Steve