On Tue, 19 May 2026 13:01:44 -0400
Steven Rostedt <[email protected]> wrote:

> @@ -636,11 +694,12 @@ static int parse_btf_arg(char *varname,
>       struct fetch_insn *code = *pcode;
>       const struct btf_param *params;
>       const struct btf_type *type;
> +     struct btf *btf = ctx_btf(ctx);
>       char *field = NULL;
>       int i, is_ptr, ret;
>       u32 tid;
>  
> -     if (WARN_ON_ONCE(!ctx->funcname))
> +     if (WARN_ON_ONCE(!ctx->funcname && !(ctx->flags & TPARG_FL_TYPECAST)))
>               return -EINVAL;
>  
>       is_ptr = split_next_field(varname, &field, ctx);
> @@ -653,6 +712,14 @@ static int parse_btf_arg(char *varname,
>               return -EOPNOTSUPP;
>       }
>  
> +     if (ctx->flags & TPARG_FL_TEVENT) {
> +             int ret;
> +
> +             ret = parse_trace_event(varname, code, ctx);
> +             if (ret < 0)
> +                     return ret;
> +     }
> +
>       if (ctx->flags & TPARG_FL_RETURN && !strcmp(varname, "$retval")) {
>               code->op = FETCH_OP_RETVAL;
>               /* Check whether the function return type is not void */
> @@ -672,7 +739,7 @@ static int parse_btf_arg(char *varname,
>               return 0;
>       }
>  
> -     if (!ctx->btf) {
> +     if (!btf) {
>               ret = query_btf_context(ctx);

Oops, need a:

                btf = ctx->btf;

here!

-- Steve

>               if (ret < 0 || ctx->nr_params == 0) {
>                       trace_probe_log_err(ctx->offset, NO_BTF_ENTRY);

Reply via email to