Re: Linux 6.0-rc1

From: Steven Rostedt
Date: Sun Aug 14 2022 - 22:27:59 EST


On Mon, 15 Aug 2022 04:23:00 +0300
"Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx> wrote:

> 53cd885bc5c3 ("ftrace: Allow IPMODIFY and DIRECT ops on the same
> function") breaks build for me (CONFIG_MODULE=n):
>
> CC kernel/trace/ftrace.o
> kernel/trace/ftrace.c:3149:1: error: ‘ops_references_rec’ defined but not used [-Werror=unused-function]
> 3149 | ops_references_rec(struct ftrace_ops *ops, struct dyn_ftrace *rec)
> | ^~~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
>
> The fix I used locally:
>

This was submitted back here:

https://lore.kernel.org/all/20220801084745.1187987-1-wangjingjin1@xxxxxxxxxx/

But the broken change went through the BPF tree, so I can't fix it.

-- Steve

> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
> index bc921a3f7ea8..90fa3ceeaeeb 100644
> --- a/kernel/trace/ftrace.c
> +++ b/kernel/trace/ftrace.c
> @@ -3138,19 +3138,6 @@ ops_references_ip(struct ftrace_ops *ops, unsigned long ip)
> return true;
> }
>
> -/*
> - * Check if the current ops references the record.
> - *
> - * If the ops traces all functions, then it was already accounted for.
> - * If the ops does not trace the current record function, skip it.
> - * If the ops ignores the function via notrace filter, skip it.
> - */
> -static bool
> -ops_references_rec(struct ftrace_ops *ops, struct dyn_ftrace *rec)
> -{
> - return ops_references_ip(ops, rec->ip);
> -}
> -
> static int ftrace_update_code(struct module *mod, struct ftrace_page *new_pgs)
> {
> bool init_nop = ftrace_need_init_nop();
> @@ -6818,6 +6805,19 @@ static int ftrace_get_trampoline_kallsym(unsigned int symnum,
>
> static LIST_HEAD(ftrace_mod_maps);
>
> +/*
> + * Check if the current ops references the record.
> + *
> + * If the ops traces all functions, then it was already accounted for.
> + * If the ops does not trace the current record function, skip it.
> + * If the ops ignores the function via notrace filter, skip it.
> + */
> +static bool
> +ops_references_rec(struct ftrace_ops *ops, struct dyn_ftrace *rec)
> +{
> + return ops_references_ip(ops, rec->ip);
> +}
> +
> static int referenced_filters(struct dyn_ftrace *rec)
> {
> struct ftrace_ops *ops;