mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 07:01:57 +00:00
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> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
4c0587e6e4
commit
9752082560
@ -32,7 +32,7 @@ static inline cycles_t get_cycles(void)
|
|||||||
return ret;
|
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
|
* We only do VDSOs on TSC capable CPUs, so this shouldnt
|
||||||
|
Loading…
Reference in New Issue
Block a user