#ifdef CONFIG_TRACING
 enum ftrace_dump_mode;
 
-#define MAX_TRACER_SIZE                100
-extern char ftrace_dump_on_oops[];
 extern int ftrace_dump_on_oops_enabled(void);
-extern int tracepoint_printk;
 
 extern void disable_trace_on_warning(void);
-extern int __disable_trace_on_warning;
-
-int tracepoint_printk_sysctl(const struct ctl_table *table, int write,
-                            void *buffer, size_t *lenp, loff_t *ppos);
 
 #else /* CONFIG_TRACING */
 static inline void  disable_trace_on_warning(void) { }
 
 #include <linux/nfs_fs.h>
 #include <linux/acpi.h>
 #include <linux/reboot.h>
-#include <linux/ftrace.h>
 #include <linux/kmod.h>
 #include <linux/capability.h>
 #include <linux/binfmts.h>
                .proc_handler   = stack_trace_sysctl,
        },
 #endif
-#ifdef CONFIG_TRACING
-       {
-               .procname       = "ftrace_dump_on_oops",
-               .data           = &ftrace_dump_on_oops,
-               .maxlen         = MAX_TRACER_SIZE,
-               .mode           = 0644,
-               .proc_handler   = proc_dostring,
-       },
-       {
-               .procname       = "traceoff_on_warning",
-               .data           = &__disable_trace_on_warning,
-               .maxlen         = sizeof(__disable_trace_on_warning),
-               .mode           = 0644,
-               .proc_handler   = proc_dointvec,
-       },
-       {
-               .procname       = "tracepoint_printk",
-               .data           = &tracepoint_printk,
-               .maxlen         = sizeof(tracepoint_printk),
-               .mode           = 0644,
-               .proc_handler   = tracepoint_printk_sysctl,
-       },
-#endif
 #ifdef CONFIG_MODULES
        {
                .procname       = "modprobe",
 
 
 cpumask_var_t __read_mostly    tracing_buffer_mask;
 
+#define MAX_TRACER_SIZE                100
 /*
  * ftrace_dump_on_oops - variable to dump ftrace buffer on oops
  *
 char ftrace_dump_on_oops[MAX_TRACER_SIZE] = "0";
 
 /* When set, tracing will stop when a WARN*() is hit */
-int __disable_trace_on_warning;
+static int __disable_trace_on_warning;
+
+int tracepoint_printk_sysctl(const struct ctl_table *table, int write,
+                            void *buffer, size_t *lenp, loff_t *ppos);
+static const struct ctl_table trace_sysctl_table[] = {
+       {
+               .procname       = "ftrace_dump_on_oops",
+               .data           = &ftrace_dump_on_oops,
+               .maxlen         = MAX_TRACER_SIZE,
+               .mode           = 0644,
+               .proc_handler   = proc_dostring,
+       },
+       {
+               .procname       = "traceoff_on_warning",
+               .data           = &__disable_trace_on_warning,
+               .maxlen         = sizeof(__disable_trace_on_warning),
+               .mode           = 0644,
+               .proc_handler   = proc_dointvec,
+       },
+       {
+               .procname       = "tracepoint_printk",
+               .data           = &tracepoint_printk,
+               .maxlen         = sizeof(tracepoint_printk),
+               .mode           = 0644,
+               .proc_handler   = tracepoint_printk_sysctl,
+       },
+};
+
+static int __init init_trace_sysctls(void)
+{
+       register_sysctl_init("kernel", trace_sysctl_table);
+       return 0;
+}
+subsys_initcall(init_trace_sysctls);
 
 #ifdef CONFIG_TRACE_EVAL_MAP_FILE
 /* Map of enums to their values, for "eval_map" file */