FAILED: patch "[PATCH] tracing/probes: Fix to show a parse error for bad type for" failed to apply to 5.10-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.10.y
git checkout FETCH_HEAD
git cherry-pick -x 8c427cc2fa73684ea140999e121b7b6c1c717632
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2024021941-launch-unjustly-2fa8@gregkh' --subject-prefix 'PATCH 5.10.y' HEAD^..
Possible dependencies:
8c427cc2fa73 ("tracing/probes: Fix to show a parse error for bad type for $comm") 27973e5c64b9 ("tracing/probes: Add string type check with BTF")d157d7694460 ("tracing/probes: Support BTF field access from $retval")c440adfbe302 ("tracing/probes: Support BTF based data structure field access") ebeed8d4a555 ("tracing/probes: Move finding func-proto API and getting func-param API to trace_btf") b1d1e90490b6 ("tracing/probes: Support BTF argument on module functions") 1f9f4f4777e7 ("tracing/probes: Fix to add NULL check for BTF APIs")53431798f4bb ("tracing/probes: Fix tracepoint event with $arg* to fetch correct argument") fd26290ec89d ("tracing/probes: Add BTF retval type support")18b1e870a496 ("tracing/probes: Add $arg* meta argument for all function args") b576e09701c7 ("tracing/probes: Support function parameters if BTF is available") 1b8b0cd754cd ("tracing/probes: Move event parameter fetching code to common parser") e2d0d7b2f42d ("tracing/probes: Add tracepoint support on fprobe_events") 334e5519c375 ("tracing/probes: Add fprobe events for tracing function entry and exit.") 30460c21ed40 ("tracing/probes: Avoid setting TPARG_FL_FENTRY and TPARG_FL_RETURN") d4505aa6afae ("tracing/probes: Reject symbol/symstr type for uprobe")b26a124cbfa8 ("tracing/probes: Add symstr type for dynamic events")61b304b73ab4 ("tracing/fprobe: Fix to check whether fprobe is registered correctly") 752be5c5c910 ("tracing/eprobe: Add eprobe filter support")ab8384442ee5 ("tracing/probes: Have kprobes and uprobes use $COMM too")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 8c427cc2fa73684ea140999e121b7b6c1c717632 Mon Sep 17 00:00:00 2001
From: "Masami Hiramatsu (Google)" <[email protected]>
Date: Wed, 24 Jan 2024 00:02:34 +0900
Subject: [PATCH] tracing/probes: Fix to show a parse error for bad type for
$comm
Fix to show a parse error for bad type (non-string) for $comm/$COMM and immediate-string. With this fix, error_log file shows appropriate error message as below.
/sys/kernel/tracing # echo 'p vfs_read $comm:u32' >> kprobe_events
sh: write error: Invalid argument
/sys/kernel/tracing # echo 'p vfs_read \"hoge":u32' >> kprobe_events
sh: write error: Invalid argument
/sys/kernel/tracing # cat error_log
[ 30.144183] trace_kprobe: error: $comm and immediate-string only accepts string type
Command: p vfs_read $comm:u32
^
[ 62.618500] trace_kprobe: error: $comm and immediate-string only accepts string type
Command: p vfs_read \"hoge":u32
^kernel/trace/trace_probe.c +5 -2
@@ -1159,9 +1159,12 @@ static int traceprobe_parse_probe_arg_body(const char *argv, ssize_t *size,if (!(ctx->flags &TPARG_FL_TEVENT ) && (strcmp (arg,"$comm" ) ==0 ||strcmp (arg,"$COMM" ) ==0 ||strncmp (arg,"\\\"" ,2 ) ==0 )) { -/* The type of $comm must be "string", and not an array. */ -if (parg->count || (t &&strcmp (t,"string" ))) +/* The type of $comm must be "string", and not an array type. */ +if (parg->count || (t &&strcmp (t,"string" ))) { +trace_probe_log_err (ctx->offset + (t ? (t - arg) :0 ), +NEED_STRING_TYPE ); goto out; + } parg->type =find_fetch_type ("string" , ctx->flags); }else parg->type =find_fetch_type (t, ctx->flags);
kernel/trace/trace_probe.h +2 -1
@@ -515,7 +515,8 @@ extern int traceprobe_define_arg_fields(struct trace_event_call *event_call,C (BAD_HYPHEN ,"Failed to parse single hyphen. Forgot '>'?" ), \C (NO_BTF_FIELD ,"This field is not found." ), \C (BAD_BTF_TID ,"Failed to get BTF type info." ),\ -C (BAD_TYPE4STR ,"This type does not fit for string." ), +C (BAD_TYPE4STR ,"This type does not fit for string." ),\ +C (NEED_STRING_TYPE ,"$comm and immediate-string only accepts string type" ), #undef C #define C(a, b) TP_ERR_##a