Re: 2.6.28-rc6-git1 -- BUG: unable to handle kernel paging requestat ffff8800be8b0019

From: Hugh Dickins
Date: Mon Dec 01 2008 - 17:48:16 EST


On Mon, 1 Dec 2008, Andrew Morton wrote:
> On Thu, 27 Nov 2008 17:34:27 +0000 (GMT)
> Hugh Dickins <hugh@xxxxxxxxxxx> wrote:
>
> > --- 2.6.28-rc6/include/linux/ftrace.h 2008-11-02 23:17:56.000000000 +0000
> > +++ linux/include/linux/ftrace.h 2008-11-27 16:39:26.000000000 +0000
> > @@ -231,7 +231,7 @@ ftrace_init_module(unsigned long *start,
> >
> > struct boot_trace {
> > pid_t caller;
> > - char func[KSYM_NAME_LEN];
> > + char func[KSYM_SYMBOL_LEN];
> > int result;
> > unsigned long long duration; /* usecs */
> > ktime_t calltime;
>
> The ftrace.h change causes this:
>
> In file included from arch/x86/kernel/machine_kexec_64.c:14:
> include/linux/ftrace.h:234: error: 'MODULE_NAME_LEN' undeclared here (not in a function)

Damn, I'm very sorry for landing you with that discovery.

>
> The fault really lies with include/linux/kallsyms.h, I think:
>
> #define KSYM_SYMBOL_LEN (sizeof("%s+%#lx/%#lx [%s]") + (KSYM_NAME_LEN - 1) + \
> 2*(BITS_PER_LONG*3/10) + (MODULE_NAME_LEN - 1) + 1)

MODULE_NAME_LEN is a big clue I completely ignored.

>
> but it doesn't include module.h, so it requires that users of this
> header perform the include.
>
> But I'm a bit reluctant to include module.h from kallsyms.h because
> kallsyms.h is a simple low-level thing:

Yes, I'd be a bit reluctant too, particularly at this stage.

>
> #include <linux/errno.h>
> #include <linux/kernel.h>
> #include <linux/stddef.h>
>
> and it wouldn't surprise me if module.h was including kallsyms.h by
> some means.
>
> So for now I'll try including module.h from ftrace.c. It would be nice
> to fix the kallsyms.h dependency..

You ended up choosing ftrace.h, which seems more to the point.

Thank you for doing the work I should never have given you.

Hugh
--
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/