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

Andrew Morton
2007-04-27T23:33:13Z

On Fri, 27 Apr 2007 10:40:57 +0530
Ananth N Mavinakayanahalli <ananth@in.ibm.com> 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?

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

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.