tracing/events: simplify system_enable_read()
authorLi Zefan <lizf@cn.fujitsu.com>
Fri, 8 May 2009 02:32:05 +0000 (10:32 +0800)
committerIngo Molnar <mingo@elte.hu>
Fri, 8 May 2009 12:00:36 +0000 (14:00 +0200)
A smarter way to figure out the output of an enable file.

[ Impact: clean up ]

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <4A0399A5.2080603@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/trace/trace_events.c

index 45f1099..df394bc 100644 (file)
@@ -414,10 +414,11 @@ static ssize_t
 system_enable_read(struct file *filp, char __user *ubuf, size_t cnt,
                   loff_t *ppos)
 {
+       const char set_to_char[4] = { '?', '0', '1', 'X' };
        const char *system = filp->private_data;
        struct ftrace_event_call *call;
        char buf[2];
-       int set = -1;
+       int set = 0;
        int ret;
 
        mutex_lock(&event_mutex);
@@ -433,47 +434,18 @@ system_enable_read(struct file *filp, char __user *ubuf, size_t cnt,
                 * or if all events or cleared, or if we have
                 * a mixture.
                 */
-               if (call->enabled) {
-                       switch (set) {
-                       case -1:
-                               set = 1;
-                               break;
-                       case 0:
-                               set = 2;
-                               break;
-                       }
-               } else {
-                       switch (set) {
-                       case -1:
-                               set = 0;
-                               break;
-                       case 1:
-                               set = 2;
-                               break;
-                       }
-               }
+               set |= (1 << !!call->enabled);
+
                /*
                 * If we have a mixture, no need to look further.
                 */
-               if (set == 2)
+               if (set == 3)
                        break;
        }
        mutex_unlock(&event_mutex);
 
+       buf[0] = set_to_char[set];
        buf[1] = '\n';
-       switch (set) {
-       case 0:
-               buf[0] = '0';
-               break;
-       case 1:
-               buf[0] = '1';
-               break;
-       case 2:
-               buf[0] = 'X';
-               break;
-       default:
-               buf[0] = '?';
-       }
 
        ret = simple_read_from_buffer(ubuf, cnt, ppos, buf, 2);