diff options
| -rw-r--r-- | arch/x86/kernel/vsyscall_64.c | 9 | ||||
| -rw-r--r-- | arch/x86/vdso/vclock_gettime.c | 3 | ||||
| -rw-r--r-- | include/linux/compiler.h | 6 | 
3 files changed, 10 insertions, 8 deletions
diff --git a/arch/x86/kernel/vsyscall_64.c b/arch/x86/kernel/vsyscall_64.c index 2f90202e59b..ece02932ea5 100644 --- a/arch/x86/kernel/vsyscall_64.c +++ b/arch/x86/kernel/vsyscall_64.c @@ -17,13 +17,8 @@   *  want per guest time just set the kernel.vsyscall64 sysctl to 0.   */ -/* Protect userspace from profiling */ -#ifdef CONFIG_TRACE_UNLIKELY_PROFILE -# undef likely -# undef unlikely -# define likely(x)		likely_notrace(x) -# define unlikely(x)		unlikely_notrace(x) -#endif +/* Disable profiling for userspace code: */ +#define DISABLE_UNLIKELY_PROFILE  #include <linux/time.h>  #include <linux/init.h> diff --git a/arch/x86/vdso/vclock_gettime.c b/arch/x86/vdso/vclock_gettime.c index 1ef0f90813d..6e667631e7d 100644 --- a/arch/x86/vdso/vclock_gettime.c +++ b/arch/x86/vdso/vclock_gettime.c @@ -9,6 +9,9 @@   * Also alternative() doesn't work.   */ +/* Disable profiling for userspace code: */ +#define DISABLE_UNLIKELY_PROFILE +  #include <linux/kernel.h>  #include <linux/posix-timers.h>  #include <linux/time.h> diff --git a/include/linux/compiler.h b/include/linux/compiler.h index 935e30cfaf3..63b7d9089d6 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h @@ -59,7 +59,11 @@ extern void __chk_io_ptr(const volatile void __iomem *);   * specific implementations come from the above header files   */ -#ifdef CONFIG_TRACE_UNLIKELY_PROFILE +/* + * Note: DISABLE_UNLIKELY_PROFILE can be used by special lowlevel code + * to disable branch tracing on a per file basis. + */ +#if defined(CONFIG_TRACE_UNLIKELY_PROFILE) && !defined(DISABLE_UNLIKELY_PROFILE)  struct ftrace_likely_data {  	const char *func;  	const char *file;  |