match_string() returns the index of an array for a matching string,
which can be used to simplify the code.

Signed-off-by: Yisheng Xie <xieyishe...@huawei.com>
---
 kernel/trace/trace.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 414d721..4bd653a 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -4395,8 +4395,7 @@ static int trace_set_options(struct trace_array *tr, char 
*option)
 {
        char *cmp;
        int neg = 0;
-       int ret = -ENODEV;
-       int i;
+       int ret;
        size_t orig_len = strlen(option);
 
        cmp = strstrip(option);
@@ -4408,16 +4407,12 @@ static int trace_set_options(struct trace_array *tr, 
char *option)
 
        mutex_lock(&trace_types_lock);
 
-       for (i = 0; trace_options[i]; i++) {
-               if (strcmp(cmp, trace_options[i]) == 0) {
-                       ret = set_tracer_flag(tr, 1 << i, !neg);
-                       break;
-               }
-       }
-
+       ret = match_string(trace_options, -1, cmp);
        /* If no option could be set, test the specific tracer options */
-       if (!trace_options[i])
+       if (ret < 0)
                ret = set_tracer_option(tr, cmp, neg);
+       else
+               ret = set_tracer_flag(tr, 1 << ret, !neg);
 
        mutex_unlock(&trace_types_lock);
 
-- 
1.7.12.4

Reply via email to