From a66d5526491387f0cd373a87b25f2f3b52d03571 Mon Sep 17 00:00:00 2001 From: Huang Ying Date: Fri, 15 Aug 2008 00:40:25 -0700 Subject: [PATCH] --- yaml --- r: 108473 b: refs/heads/master c: 9bdeb7b5d34f197dea7859d24475943395ffea5e h: refs/heads/master i: 108471: 95e80fe84f684b70c812ff423b5c158337e9a139 v: v3 --- [refs] | 2 +- trunk/include/linux/ftrace.h | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 7f51649c4abc..c534e1617dc6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 73bd9c72a29be1e8de008186eea55d333a938804 +refs/heads/master: 9bdeb7b5d34f197dea7859d24475943395ffea5e diff --git a/trunk/include/linux/ftrace.h b/trunk/include/linux/ftrace.h index f368d041e02d..bb384068272e 100644 --- a/trunk/include/linux/ftrace.h +++ b/trunk/include/linux/ftrace.h @@ -98,6 +98,27 @@ static inline void tracer_disable(void) #endif } +/* Ftrace disable/restore without lock. Some synchronization mechanism + * must be used to prevent ftrace_enabled to be changed between + * disable/restore. */ +static inline int __ftrace_enabled_save(void) +{ +#ifdef CONFIG_FTRACE + int saved_ftrace_enabled = ftrace_enabled; + ftrace_enabled = 0; + return saved_ftrace_enabled; +#else + return 0; +#endif +} + +static inline void __ftrace_enabled_restore(int enabled) +{ +#ifdef CONFIG_FTRACE + ftrace_enabled = enabled; +#endif +} + #ifdef CONFIG_FRAME_POINTER /* TODO: need to fix this for ARM */ # define CALLER_ADDR0 ((unsigned long)__builtin_return_address(0))