Messages in this thread Patch in this message | | | Date | Sun, 27 Apr 2008 00:39:36 +0100 (BST) | From | Hugh Dickins <> | Subject | [PATCH] x86: vget_cycles() __always_inline |
| |
Mark vget_cycles() as __always_inline, so gcc is never tempted to make the vsyscall vread_tsc() dive into kernel text, with resulting SIGSEGV.
This was a self-inflicted wound: I've not seen that happen with unhacked sources; but for debug reasons I'd changed my x86/Makefile to compile no-unit-at-a-time, and that in conjunction with OPTIMIZE_INLINING=y ended up with vget_cycles() in kernel text. Perhaps it can happen in other ways: safer to use __always_inline.
Signed-off-by: Hugh Dickins <hugh@veritas.com> ---
include/asm-x86/tsc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
--- 2.6.25-mm1/include/asm-x86/tsc.h 2008-04-18 12:18:34.000000000 +0100 +++ linux/include/asm-x86/tsc.h 2008-04-24 19:12:32.000000000 +0100 @@ -32,7 +32,7 @@ static inline cycles_t get_cycles(void) return ret; } -static inline cycles_t vget_cycles(void) +static __always_inline cycles_t vget_cycles(void) { /* * We only do VDSOs on TSC capable CPUs, so this shouldnt
| |