Re: [PATCH 2/2] tracing: fprobe: Fix to remove recorded module addresses from filter
From: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Date: 2025-09-24 08:11:00
Also in:
lkml
On Wed, 24 Sep 2025 11:49:39 +0800 menglong.dong@linux.dev wrote:
On 2025/9/24 08:26 Masami Hiramatsu (Google) [off-list ref] write:quoted
From: Masami Hiramatsu (Google) <mhiramat@kernel.org> Even if there is a memory allocation failure in fprobe_addr_list_add(), there is a partial list of module addresses. So remove the recorded addresses from filter if exists. This also removes the redundant ret local variable. Fixes: a3dc2983ca7b ("tracing: fprobe: Cleanup fprobe hash when module unloading") Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> --- kernel/trace/fprobe.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)Hi, Masami. Should I send the V2 of the patch: tracing: fprobe: optimization for entry only case after this series applied?
Yeah, I'll push this [2/2] to stable tonight. and push [1/2] to probes/for-next too. I'll rebase probes/for-next so that it will have both patch. Thank you,
Thanks! Menglong Dongquoted
diff --git a/kernel/trace/fprobe.c b/kernel/trace/fprobe.c index 12ec194fdfed..95e43814b85b 100644 --- a/kernel/trace/fprobe.c +++ b/kernel/trace/fprobe.c@@ -434,8 +434,9 @@ static int fprobe_addr_list_add(struct fprobe_addr_list *alist, unsigned long ad { unsigned long *addrs; - if (alist->index >= alist->size) - return -ENOMEM; + /* Previously we failed to expand the list. */ + if (alist->index == alist->size) + return -ENOSPC; alist->addrs[alist->index++] = addr; if (alist->index < alist->size)@@ -497,7 +498,7 @@ static int fprobe_module_callback(struct notifier_block *nb, } while (node == ERR_PTR(-EAGAIN)); rhashtable_walk_exit(&iter); - if (alist.index < alist.size && alist.index > 0) + if (alist.index > 0) ftrace_set_filter_ips(&fprobe_graph_ops.ops, alist.addrs, alist.index, 1, 0); mutex_unlock(&fprobe_mutex);
-- Masami Hiramatsu (Google) [off-list ref]