static DEFINE_PER_CPU(struct trace_array_cpu, max_tr_data);
 
-/* tracer_enabled is used to toggle activation of a tracer */
-static int                     tracer_enabled = 1;
-
-/**
- * tracing_is_enabled - return tracer_enabled status
- *
- * This function is used by other tracers to know the status
- * of the tracer_enabled flag.  Tracers may use this function
- * to know if it should enable their features when starting
- * up. See irqsoff tracer for an example (start_irqsoff_tracer).
- */
 int tracing_is_enabled(void)
 {
-       return tracer_enabled;
+       return tracing_is_on();
 }
 
 /*
 
 void tracing_record_cmdline(struct task_struct *tsk)
 {
-       if (atomic_read(&trace_record_cmdline_disabled) || !tracer_enabled ||
-           !tracing_is_on())
+       if (atomic_read(&trace_record_cmdline_disabled) || !tracing_is_on())
                return;
 
        if (!__this_cpu_read(trace_cmdline_save))
     .llseek    = generic_file_llseek,
 };
 
-static ssize_t
-tracing_ctrl_read(struct file *filp, char __user *ubuf,
-                 size_t cnt, loff_t *ppos)
-{
-       char buf[64];
-       int r;
-
-       r = sprintf(buf, "%u\n", tracer_enabled);
-       return simple_read_from_buffer(ubuf, cnt, ppos, buf, r);
-}
-
-static ssize_t
-tracing_ctrl_write(struct file *filp, const char __user *ubuf,
-                  size_t cnt, loff_t *ppos)
-{
-       struct trace_array *tr = filp->private_data;
-       unsigned long val;
-       int ret;
-
-       ret = kstrtoul_from_user(ubuf, cnt, 10, &val);
-       if (ret)
-               return ret;
-
-       val = !!val;
-
-       mutex_lock(&trace_types_lock);
-       if (tracer_enabled ^ val) {
-
-               /* Only need to warn if this is used to change the state */
-               WARN_ONCE(1, "tracing_enabled is deprecated. Use tracing_on");
-
-               if (val) {
-                       tracer_enabled = 1;
-                       if (current_trace->start)
-                               current_trace->start(tr);
-                       tracing_start();
-               } else {
-                       tracer_enabled = 0;
-                       tracing_stop();
-                       if (current_trace->stop)
-                               current_trace->stop(tr);
-               }
-       }
-       mutex_unlock(&trace_types_lock);
-
-       *ppos += cnt;
-
-       return cnt;
-}
-
 static ssize_t
 tracing_set_trace_read(struct file *filp, char __user *ubuf,
                       size_t cnt, loff_t *ppos)
                        return -EINTR;
 
                /*
-                * We block until we read something and tracing is disabled.
+                * We block until we read something and tracing is enabled.
                 * We still block if tracing is disabled, but we have never
                 * read anything. This allows a user to cat this file, and
                 * then enable tracing. But after we have read something,
                 *
                 * iter->pos will be 0 if we haven't read anything.
                 */
-               if (!tracer_enabled && iter->pos)
+               if (tracing_is_enabled() && iter->pos)
                        break;
        }
 
        .llseek         = generic_file_llseek,
 };
 
-static const struct file_operations tracing_ctrl_fops = {
-       .open           = tracing_open_generic,
-       .read           = tracing_ctrl_read,
-       .write          = tracing_ctrl_write,
-       .llseek         = generic_file_llseek,
-};
-
 static const struct file_operations set_tracer_fops = {
        .open           = tracing_open_generic,
        .read           = tracing_set_trace_read,
        d_tracer = tracing_init_dentry();
 
        trace_create_file("tracing_enabled", 0644, d_tracer,
-                       &global_trace, &tracing_ctrl_fops);
+                         &global_trace, &rb_simple_fops);
 
        trace_create_file("trace_options", 0644, d_tracer,
                        NULL, &tracing_iter_fops);
 
                                           int (*func)(void))
 {
        int save_ftrace_enabled = ftrace_enabled;
-       int save_tracer_enabled = tracer_enabled;
        unsigned long count;
        char *func_name;
        int ret;
 
        /* enable tracing, and record the filter function */
        ftrace_enabled = 1;
-       tracer_enabled = 1;
 
        /* passed in by parameter to fool gcc from optimizing */
        func();
 
  out:
        ftrace_enabled = save_ftrace_enabled;
-       tracer_enabled = save_tracer_enabled;
 
        /* Enable tracing on all functions again */
        ftrace_set_global_filter(NULL, 0, 1);
 trace_selftest_function_recursion(void)
 {
        int save_ftrace_enabled = ftrace_enabled;
-       int save_tracer_enabled = tracer_enabled;
        char *func_name;
        int len;
        int ret;
 
        /* enable tracing, and record the filter function */
        ftrace_enabled = 1;
-       tracer_enabled = 1;
 
        /* Handle PPC64 '.' name */
        func_name = "*" __stringify(DYN_FTRACE_TEST_NAME);
        ret = 0;
 out:
        ftrace_enabled = save_ftrace_enabled;
-       tracer_enabled = save_tracer_enabled;
 
        return ret;
 }
 trace_selftest_function_regs(void)
 {
        int save_ftrace_enabled = ftrace_enabled;
-       int save_tracer_enabled = tracer_enabled;
        char *func_name;
        int len;
        int ret;
 
        /* enable tracing, and record the filter function */
        ftrace_enabled = 1;
-       tracer_enabled = 1;
 
        /* Handle PPC64 '.' name */
        func_name = "*" __stringify(DYN_FTRACE_TEST_NAME);
        ret = 0;
 out:
        ftrace_enabled = save_ftrace_enabled;
-       tracer_enabled = save_tracer_enabled;
 
        return ret;
 }
 trace_selftest_startup_function(struct tracer *trace, struct trace_array *tr)
 {
        int save_ftrace_enabled = ftrace_enabled;
-       int save_tracer_enabled = tracer_enabled;
        unsigned long count;
        int ret;
 
 
        /* start the tracing */
        ftrace_enabled = 1;
-       tracer_enabled = 1;
 
        ret = tracer_init(trace, tr);
        if (ret) {
        ret = trace_selftest_function_regs();
  out:
        ftrace_enabled = save_ftrace_enabled;
-       tracer_enabled = save_tracer_enabled;
 
        /* kill ftrace totally if we failed */
        if (ret)