tracing/ksym_tracer: fix write operation of ksym_trace_filter
This patch fix 2 bugs: - fix the return value of ksym_trace_filter_write() when we want to clear symbol in ksym_trace_filter file for example: # echo global_trace:rw- > /debug/tracing/ksym_trace_filter # echo global_trace:--- > /debug/tracing/ksym_trace_filter -bash: echo: write error: Invalid argument # cat /debug/tracing/ksym_trace_filter # We want to clear 'global_trace' in ksym_trace_filter, it complain with "Invalid argument", but the operation is successful - the "r--" access types is not allowed, but ksym_trace_filter file think it OK for example: # echo ksym_tracer_mutex:r-- > ksym_trace_filter -bash: echo: write error: Resource temporarily unavailable # dmesg ksym_tracer request failed. Try again later!! The error occur at register_kernel_hw_breakpoint(), but It's should at access types parser Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com> LKML-Reference: <4A66863D.5090802@cn.fujitsu.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
Родитель
d857ace143
Коммит
8e068542a8
|
@ -135,6 +135,9 @@ static int ksym_trace_get_access_type(char *str)
|
|||
case 6:
|
||||
access = HW_BREAKPOINT_RW;
|
||||
break;
|
||||
case 4:
|
||||
access = -EINVAL;
|
||||
break;
|
||||
case 2:
|
||||
access = HW_BREAKPOINT_WRITE;
|
||||
break;
|
||||
|
@ -312,6 +315,7 @@ static ssize_t ksym_trace_filter_write(struct file *file,
|
|||
kfree(entry->ksym_hbp->info.name);
|
||||
kfree(entry->ksym_hbp);
|
||||
kfree(entry);
|
||||
ret = 0;
|
||||
goto out;
|
||||
} else {
|
||||
/* Check for malformed request: (4) */
|
||||
|
|
Загрузка…
Ссылка в новой задаче