Re: [tip:tracing/core] x86/tracing: comment need for atomic nop

From: Mathieu Desnoyers
Date: Sat Sep 12 2009 - 09:45:26 EST


* tip-bot for Steven Rostedt (srostedt@xxxxxxxxxx) wrote:
> Commit-ID: fc06b8520b3bf9aaeb2e27debe6719c215bd4916
> Gitweb: http://git.kernel.org/tip/fc06b8520b3bf9aaeb2e27debe6719c215bd4916
> Author: Steven Rostedt <srostedt@xxxxxxxxxx>
> AuthorDate: Thu, 10 Sep 2009 17:22:44 -0400
> Committer: Steven Rostedt <rostedt@xxxxxxxxxxx>
> CommitDate: Thu, 10 Sep 2009 17:22:44 -0400
>
> x86/tracing: comment need for atomic nop
>
> The dynamic function tracer relys on the macro P6_NOP5 always being
> an atomic NOP. If for some reason it is changed to be two operations
> (like a nop2 nop3) it can faults within the kernel when the function
> tracer modifies the code.
>
> This patch adds a comment to note that the P6_NOPs are expected to
> be atomic. This will hopefully prevent anyone from changing that.
>
> Reported-by: Mathieu Desnoyer <mathieu.desnoyers@xxxxxxxxxx>

With an added "s" to my last name, that will be good.

Thanks !

Acked-by: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxx>

> Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
>
>
> ---
> arch/x86/include/asm/nops.h | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/arch/x86/include/asm/nops.h b/arch/x86/include/asm/nops.h
> index ad2668e..6d8723a 100644
> --- a/arch/x86/include/asm/nops.h
> +++ b/arch/x86/include/asm/nops.h
> @@ -65,6 +65,8 @@
> 6: osp nopl 0x00(%eax,%eax,1)
> 7: nopl 0x00000000(%eax)
> 8: nopl 0x00000000(%eax,%eax,1)
> + Note: All the above are assumed to be a single instruction.
> + There is kernel code that depends on this.
> */
> #define P6_NOP1 GENERIC_NOP1
> #define P6_NOP2 ".byte 0x66,0x90\n"

--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
--
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/