aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/linux/ftrace.h25
-rw-r--r--include/linux/kernel.h34
-rw-r--r--include/linux/module.h2
3 files changed, 32 insertions, 29 deletions
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
index 1cc8ca453a9..e1583f2639b 100644
--- a/include/linux/ftrace.h
+++ b/include/linux/ftrace.h
@@ -223,31 +223,6 @@ extern int ftrace_make_nop(struct module *mod,
*/
extern int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr);
-#ifdef CONFIG_TRACE_BPRINTK
-extern int trace_vbprintk(unsigned long ip, const char *fmt, va_list args);
-extern int __trace_bprintk(unsigned long ip, const char *fmt, ...)
- __attribute__ ((format (printf, 2, 3)));
-
-static inline void ____trace_bprintk_check_format(const char *fmt, ...)
- __attribute__ ((format (printf, 1, 2)));
-static inline void ____trace_bprintk_check_format(const char *fmt, ...) {}
-#define __trace_bprintk_check_format(fmt, args...) \
-do { \
- if (0) \
- ____trace_bprintk_check_format(fmt, ##args); \
-} while (0)
-
-#define trace_bprintk(fmt, args...) \
-do { \
- static char *__attribute__((section("__trace_bprintk_fmt"))) \
- trace_bprintk_fmt = fmt; \
- __trace_bprintk_check_format(fmt, ##args); \
- __trace_bprintk(_THIS_IP_, trace_bprintk_fmt, ##args); \
-} while (0)
-#else
-#define trace_bprintk trace_printk
-#endif
-
/* May be defined in arch */
extern int ftrace_arch_read_dyn_info(char *buf, int size);
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 7aef15c4645..4e726b9a71e 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -423,6 +423,16 @@ extern void ftrace_off_permanent(void);
extern void
ftrace_special(unsigned long arg1, unsigned long arg2, unsigned long arg3);
+static inline void __attribute__ ((format (printf, 1, 2)))
+____trace_printk_check_format(const char *fmt, ...)
+{
+}
+#define __trace_printk_check_format(fmt, args...) \
+do { \
+ if (0) \
+ ____trace_printk_check_format(fmt, ##args); \
+} while (0)
+
/**
* trace_printk - printf formatting in the ftrace buffer
* @fmt: the printf format for printing
@@ -439,13 +449,31 @@ ftrace_special(unsigned long arg1, unsigned long arg2, unsigned long arg3);
* Please refrain from leaving trace_printks scattered around in
* your code.
*/
-# define trace_printk(fmt...) __trace_printk(_THIS_IP_, fmt)
+
+#define trace_printk(fmt, args...) \
+do { \
+ static const char *trace_printk_fmt \
+ __attribute__((section("__trace_printk_fmt"))); \
+ trace_printk_fmt = fmt; \
+ __trace_printk_check_format(fmt, ##args); \
+ __trace_printk(_THIS_IP_, trace_printk_fmt, ##args); \
+} while (0)
+
extern int
__trace_printk(unsigned long ip, const char *fmt, ...)
__attribute__ ((format (printf, 2, 3)));
-# define ftrace_vprintk(fmt, ap) __trace_printk(_THIS_IP_, fmt, ap)
+
+#define ftrace_vprintk(fmt, vargs) \
+do { \
+ static const char *trace_printk_fmt \
+ __attribute__((section("__trace_printk_fmt"))); \
+ trace_printk_fmt = fmt; \
+ __ftrace_vprintk(_THIS_IP_, trace_printk_fmt, vargs); \
+} while (0)
+
extern int
__ftrace_vprintk(unsigned long ip, const char *fmt, va_list ap);
+
extern void ftrace_dump(void);
#else
static inline void
@@ -467,7 +495,7 @@ ftrace_vprintk(const char *fmt, va_list ap)
return 0;
}
static inline void ftrace_dump(void) { }
-#endif
+#endif /* CONFIG_TRACING */
/*
* Display an IP address in readable format.
diff --git a/include/linux/module.h b/include/linux/module.h
index 8cbec972d8e..22d9878e868 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -329,7 +329,7 @@ struct module
unsigned int num_tracepoints;
#endif
-#ifdef CONFIG_TRACE_BPRINTK
+#ifdef CONFIG_TRACING
const char **trace_bprintk_fmt_start;
unsigned int num_trace_bprintk_fmt;
#endif