Re: [2.6 patch] include/linux/kprobes.h: always offershow_registers() prototype

From: Adrian Bunk
Date: Sat Apr 28 2007 - 08:43:01 EST


On Fri, Apr 27, 2007 at 04:32:51PM -0700, Andrew Morton wrote:
> On Fri, 27 Apr 2007 10:40:57 +0530
> Ananth N Mavinakayanahalli <ananth@xxxxxxxxxx> wrote:
>
> > On Fri, Apr 27, 2007 at 01:47:49AM +0200, Adrian Bunk wrote:
> > > Allow gcc to perform show_registers() type checking also with
> > > CONFIG_KPROBES=n.
> >
> > Is kprobes.h the correct place to allow for this change? Perhaps, with
> > Christoph's patch http://marc.info/?l=linux-kernel&m=117432009501114&w=2
> > consolidating the die_notifier code, this could be moved to
> > include/linux/kdebug.h instead?
> >
>
> Yes, I think something is definitely wrong here. If the code is presently
> calling show_registers() with no prototype in scope, it should be emitting
> warnings?

No, it's not a caller but the function itself that is present wiith
CONFIG_KPROBES=n, giving me warnings with -Wmissing-prototypes.

> Also, yes, kprobes.h is an inappropriate place for this declaration. It
> should be in include/asm-foo/, I guess.

Currently, we have partially both...

And include/linux/ sounds like a better place it the prototype should be
the same on all architectures.

> But if we do that, there's an excellent chance of a compile explosion,
> because we also have implementations of show_registers() in
> drivers/net/wireless/ipw2100.c, drivers/usb/gadget/net2280.c,
> drivers/usb/host/ehci-dbg.c, drivers/usb/host/ohci-dbg.c and who knows
> where else.
>
> So what I'd suggest is that we rename show_registers() to something saner,
> then put the declaration into some arch header file then include that
> header in kprobes.

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

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