Messages in this thread | | | Date | Mon, 1 Dec 2008 22:47:13 +0000 (GMT) | From | Hugh Dickins <> | Subject | Re: 2.6.28-rc6-git1 -- BUG: unable to handle kernel paging request at ffff8800be8b0019 |
| |
On Mon, 1 Dec 2008, Andrew Morton wrote: > On Thu, 27 Nov 2008 17:34:27 +0000 (GMT) > Hugh Dickins <hugh@veritas.com> 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
| |