Re: [RFC -tip] x86: introduce ENTRY(KPROBE)_X86 assembly helpers to catch unbalanced declaration

From: Sam Ravnborg
Date: Sun Nov 23 2008 - 13:11:36 EST


On Sun, Nov 23, 2008 at 08:58:46PM +0300, Cyrill Gorcunov wrote:
> [Sam Ravnborg - Sun, Nov 23, 2008 at 06:51:25PM +0100]
> | On Sun, Nov 23, 2008 at 07:57:11PM +0300, Cyrill Gorcunov wrote:
> | > It's usefull to catch unbalanced, missed or mixed declarations of ENTRY and
> | > KPROBES. These macros would help a bit (at least I hope so).
> | >
> | > For example the following code would compile without problems
> | >
> | > ENTRY_X86(mcount)
> | > retq
> | > END_X86(mcount)
> | >
> | > But if you forget and mix the following form
> | >
> | > ENTRY_X86(mcount)
> | > retq
> | > END(mcount)
> | >
> | > ENTRY_X86(ftrace_caller)
> | >
> | > The assembler will issue the following message:
> | > Error: ENTRY_X86/KPROBE_X86 unbalanced,missed,mixed
> | >
> | > Actually the checking is performed at every _X86 macro
> | > so maybe it's good idea to put ENTRY_KPROBE_FINAL_X86
> | > at the end of .S file to be sure you didn't miss anything.
> |
> | Could we at least try this out in -next before we decide to make
> | this X86 only?
> | I am aware that binutils can be a bit fragile but -next testing should
> | make a good check on this.
> |
> | Sam
> |
>
> I don't have -next tree on my laptop, neither cross-compile tools but
> if someone could test it -- it would be great. But I used gas macros
> here -- i doubt other architectures has the same syntax. At least
> PDP-11 would beat us with ';' symbol :)

If we include this in any of the 100+ trees that Stephen sucks
into -next we will get it tried out.

Ingo has so and so does others so getting it into -next
is rather easy. Then the automated builds will tell of if
it fails on any of the toolchains used there.

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