tracing/ftrace: Fixes unexpected -EINVAL when longest tracer name is set
PATCH 1/4 tracing/ftrace: Fixes unexpected -EINVAL when longest tracer name is set
Impact: Corrects return value from tracing_set_trace_write
The following commit d9e540762f5cdd89f24e518ad1fd31142d0b9726 remade alive the bug which made the set of a new tracer returning -EINVAL if this is the longest name of tracer.
This patch corrects it.
Signed-off-by Frederic Weisbecker <[email protected]>
--- kernel/trace/trace.c | 12 +++++++----- 1 files changed, 7 insertions(+), 5 deletions(-)
kernel/trace/trace.c +7 -5
@@ -2655,6 +2655,9 @@ tracing_set_trace_write(struct file *filp, const char __user *ubuf,char buf[max_tracer_type_len+1 ];int i;size_t ret; +int err; + + ret = cnt;if (cnt > max_tracer_type_len) cnt = max_tracer_type_len;
@@ -2668,12 +2671,11 @@ tracing_set_trace_write(struct file *filp, const char __user *ubuf,for (i = cnt -1 ; i >0 &&isspace (buf[i]); i--) buf[i] =0 ; - ret =tracing_set_tracer (buf); -if (!ret) - ret = cnt; + err =tracing_set_tracer (buf); +if (err) +return err; -if (ret >0 ) - filp->f_pos += ret; + filp->f_pos += ret;return ret; }
Signature · 1 line
1.5.2.5