Commit 4dbf6bc2 authored by Steven Rostedt's avatar Steven Rostedt Committed by Steven Rostedt

tracing: Convert nop macros to static inlines

The ftrace.h file contains several functions as macros when the
functions are disabled due to config options. This patch converts
most of them to static inlines.

There are two exceptions:

  register_ftrace_function() and unregister_ftrace_function()

This is because their parameter "ops" must not be evaluated since
code using the function is allowed to #ifdef out the creation of
the parameter.

This also fixes an error caused by recent changes:

 kernel/trace/trace_irqsoff.c: In function 'start_irqsoff_tracer':
 kernel/trace/trace_irqsoff.c:571: error: expected expression before 'do'
Reported-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
parent 37e44bc5
...@@ -82,9 +82,13 @@ void clear_ftrace_function(void); ...@@ -82,9 +82,13 @@ void clear_ftrace_function(void);
extern void ftrace_stub(unsigned long a0, unsigned long a1); extern void ftrace_stub(unsigned long a0, unsigned long a1);
#else /* !CONFIG_FUNCTION_TRACER */ #else /* !CONFIG_FUNCTION_TRACER */
# define register_ftrace_function(ops) do { } while (0) /*
# define unregister_ftrace_function(ops) do { } while (0) * (un)register_ftrace_function must be a macro since the ops parameter
# define clear_ftrace_function(ops) do { } while (0) * must not be evaluated.
*/
#define register_ftrace_function(ops) ({ 0; })
#define unregister_ftrace_function(ops) ({ 0; })
static inline void clear_ftrace_function(void) { }
static inline void ftrace_kill(void) { } static inline void ftrace_kill(void) { }
static inline void ftrace_stop(void) { } static inline void ftrace_stop(void) { }
static inline void ftrace_start(void) { } static inline void ftrace_start(void) { }
...@@ -237,11 +241,13 @@ extern int skip_trace(unsigned long ip); ...@@ -237,11 +241,13 @@ extern int skip_trace(unsigned long ip);
extern void ftrace_disable_daemon(void); extern void ftrace_disable_daemon(void);
extern void ftrace_enable_daemon(void); extern void ftrace_enable_daemon(void);
#else #else
# define skip_trace(ip) ({ 0; }) static inline int skip_trace(unsigned long ip) { return 0; }
# define ftrace_force_update() ({ 0; }) static inline int ftrace_force_update(void) { return 0; }
# define ftrace_set_filter(buf, len, reset) do { } while (0) static inline void ftrace_set_filter(unsigned char *buf, int len, int reset)
# define ftrace_disable_daemon() do { } while (0) {
# define ftrace_enable_daemon() do { } while (0) }
static inline void ftrace_disable_daemon(void) { }
static inline void ftrace_enable_daemon(void) { }
static inline void ftrace_release_mod(struct module *mod) {} static inline void ftrace_release_mod(struct module *mod) {}
static inline int register_ftrace_command(struct ftrace_func_command *cmd) static inline int register_ftrace_command(struct ftrace_func_command *cmd)
{ {
...@@ -314,16 +320,16 @@ static inline void __ftrace_enabled_restore(int enabled) ...@@ -314,16 +320,16 @@ static inline void __ftrace_enabled_restore(int enabled)
extern void time_hardirqs_on(unsigned long a0, unsigned long a1); extern void time_hardirqs_on(unsigned long a0, unsigned long a1);
extern void time_hardirqs_off(unsigned long a0, unsigned long a1); extern void time_hardirqs_off(unsigned long a0, unsigned long a1);
#else #else
# define time_hardirqs_on(a0, a1) do { } while (0) static inline void time_hardirqs_on(unsigned long a0, unsigned long a1) { }
# define time_hardirqs_off(a0, a1) do { } while (0) static inline void time_hardirqs_off(unsigned long a0, unsigned long a1) { }
#endif #endif
#ifdef CONFIG_PREEMPT_TRACER #ifdef CONFIG_PREEMPT_TRACER
extern void trace_preempt_on(unsigned long a0, unsigned long a1); extern void trace_preempt_on(unsigned long a0, unsigned long a1);
extern void trace_preempt_off(unsigned long a0, unsigned long a1); extern void trace_preempt_off(unsigned long a0, unsigned long a1);
#else #else
# define trace_preempt_on(a0, a1) do { } while (0) static inline void trace_preempt_on(unsigned long a0, unsigned long a1) { }
# define trace_preempt_off(a0, a1) do { } while (0) static inline void trace_preempt_off(unsigned long a0, unsigned long a1) { }
#endif #endif
#ifdef CONFIG_FTRACE_MCOUNT_RECORD #ifdef CONFIG_FTRACE_MCOUNT_RECORD
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment