From: Masami Hiramatsu (Google) <[email protected]>

Report wrong dynamic event type in the command via error_log.
-----
 # echo "z hoge" > /sys/kernel/tracing/dynamic_events
 sh: write error: Invalid argument
 # cat /sys/kernel/tracing/error_log
 [   22.977022] dynevent: error: No matching dynamic event type
   Command: z hoge
            ^
-----

Signed-off-by: Masami Hiramatsu (Google) <[email protected]>
---
  Changes in v2
    - Use tracing_log_err() directly to avoid compile error.
    - Update error message.
---
 kernel/trace/trace_dynevent.c |   11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/kernel/trace/trace_dynevent.c b/kernel/trace/trace_dynevent.c
index d06854bd32b3..c4dfbc293bae 100644
--- a/kernel/trace/trace_dynevent.c
+++ b/kernel/trace/trace_dynevent.c
@@ -144,9 +144,16 @@ static int create_dyn_event(const char *raw_command)
                if (!ret || ret != -ECANCELED)
                        break;
        }
-       mutex_unlock(&dyn_event_ops_mutex);
-       if (ret == -ECANCELED)
+       if (ret == -ECANCELED) {
+               static const char *err_msg[] = {"No matching dynamic event 
type"};
+
+               /* Wrong dynamic event. Leave an error message. */
+               tracing_log_err(NULL, "dynevent", raw_command, err_msg,
+                               0, 0);
                ret = -EINVAL;
+       }
+
+       mutex_unlock(&dyn_event_ops_mutex);
 
        return ret;
 }


Reply via email to