]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ftrace: Do not add duplicate entries in subops manager ops
authorSteven Rostedt <rostedt@goodmis.org>
Thu, 20 Feb 2025 20:20:11 +0000 (15:20 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 7 Mar 2025 15:56:40 +0000 (16:56 +0100)
commit 8eb4b09e0bbd30981305643229fe7640ad41b667 upstream.

Check if a function is already in the manager ops of a subops. A manager
ops contains multiple subops, and if two or more subops are tracing the
same function, the manager ops only needs a single entry in its hash.

Cc: stable@vger.kernel.org
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Sven Schnelle <svens@linux.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Link: https://lore.kernel.org/20250220202055.226762894@goodmis.org
Fixes: 4f554e955614f ("ftrace: Add ftrace_set_filter_ips function")
Tested-by: Heiko Carstens <hca@linux.ibm.com>
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/trace/ftrace.c

index 55cc0e67a02e39e3a24cff4244ea3c1538772313..f252fb71a93335de8bc88a8ab197871549bcc2d6 100644 (file)
@@ -5108,6 +5108,9 @@ __ftrace_match_addr(struct ftrace_hash *hash, unsigned long ip, int remove)
                        return -ENOENT;
                free_hash_entry(hash, entry);
                return 0;
+       } else if (__ftrace_lookup_ip(hash, ip) != NULL) {
+               /* Already exists */
+               return 0;
        }
 
        return add_hash_entry(hash, ip);