Re: [PATCH 1/4] x86: don't include slab.h from arch/x86/include/asm/pgtable_32.h

From: Pekka Enberg
Date: Wed Mar 24 2010 - 06:58:13 EST


On Wed, Mar 24, 2010 at 10:48 AM, Tejun Heo <tj@xxxxxxxxxx> wrote:
> Including slab.h from x86 pgtable_32.h creates a troublesome
> dependency chain w/ ftrace enabled.  The following chain leads to
> inclusion of pgtable_32.h from define_trace.h.
>
>  trace/define_trace.h
>  trace/ftrace.h
>  linux/ftrace_event.h
>  linux/ring_buffer.h
>  linux/mm.h
>  asm/pgtable.h
>  asm/pgtable_32.h
>
> And when slab.h itself defines trace hooks via
>
>  linux/sl[aou]b_def.h
>  linux/kmemtrace.h
>  trace/events/kmem.h
>
> If slab.h is not included before define_trace.h is included, this
> leads to duplicate definitions of kmemtrace hooks or other include
> dependency problems.
>
> pgtable_32.h doesn't need slab.h to begin with.  Don't include it from
> there.
>
> Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: H. Peter Anvin <hpa@xxxxxxxxx>

Acked-by: Pekka Enberg <penberg@xxxxxxxxxxxxxx>

> ---
>  arch/x86/include/asm/pgtable_32.h |    1 -
>  1 files changed, 0 insertions(+), 1 deletions(-)
>
> diff --git a/arch/x86/include/asm/pgtable_32.h b/arch/x86/include/asm/pgtable_32.h
> index 47339a1..2984a25 100644
> --- a/arch/x86/include/asm/pgtable_32.h
> +++ b/arch/x86/include/asm/pgtable_32.h
> @@ -19,7 +19,6 @@
>  #include <asm/paravirt.h>
>
>  #include <linux/bitops.h>
> -#include <linux/slab.h>
>  #include <linux/list.h>
>  #include <linux/spinlock.h>
>
> --
> 1.6.4.2
>
> --
> 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/
>
--
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/