diff --git a/include/linux/kernel.h b/include/linux/kernel.h index c24399129889..dc0f0b0b0ce1 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -613,6 +613,9 @@ do { \ * let gcc optimize the rest. */ +#ifdef CONFIG_DISABLE_TRACE_PRINTK +#define trace_printk pr_debug +#else #define trace_printk(fmt, ...) \ do { \ char _______STR[] = __stringify((__VA_ARGS__)); \ @@ -635,6 +638,7 @@ do { \ else \ __trace_printk(_THIS_IP_, fmt, ##args); \ } while (0) +#endif extern __printf(2, 3) int __trace_bprintk(unsigned long ip, const char *fmt, ...); diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig index 1f89ca0ad563..9a903e066d31 100644 --- a/kernel/trace/Kconfig +++ b/kernel/trace/Kconfig @@ -135,6 +135,20 @@ config GENERIC_TRACER bool select TRACING +if TRACING + +config DISABLE_TRACE_PRINTK + bool "Force disable trace_printk() usage" + default y + help + When trace_printk() is used in any of the kernel source, it enables + debugging functions which are not desired for production kernel. + Enabling this option will replace trace_printk() with pr_debug(). + + If in doubt, say Y. + +endif + # # Minimum requirements an architecture has to meet for us to # be able to offer generic tracing facilities: