]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
perf probe-event: Ensure probe event nsinfo is always cleared
authorIan Rogers <irogers@google.com>
Sat, 22 Nov 2025 08:19:17 +0000 (00:19 -0800)
committerNamhyung Kim <namhyung@kernel.org>
Wed, 3 Dec 2025 19:07:23 +0000 (11:07 -0800)
Move nsinfo__zput from cleanup_perf_probe_events to
clear_perf_probe_event so it is always executed. Clean up
clear_perf_probe_events to not call nsinfo__zput and use the pev
variable to avoid repeated array accesses.

Signed-off-by: Ian Rogers <irogers@google.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/util/probe-event.c

index 6ab2eb551b6cdf1717bf39a3efb188611cab1c27..710e4620923ea8b2bfe40d21a7028d91c174f7d5 100644 (file)
@@ -2419,6 +2419,7 @@ void clear_perf_probe_event(struct perf_probe_event *pev)
        }
        pev->nargs = 0;
        zfree(&pev->args);
+       nsinfo__zput(pev->nsi);
 }
 
 #define strdup_or_goto(str, label)     \
@@ -3767,12 +3768,11 @@ void cleanup_perf_probe_events(struct perf_probe_event *pevs, int npevs)
        /* Loop 3: cleanup and free trace events  */
        for (i = 0; i < npevs; i++) {
                pev = &pevs[i];
-               for (j = 0; j < pevs[i].ntevs; j++)
-                       clear_probe_trace_event(&pevs[i].tevs[j]);
-               zfree(&pevs[i].tevs);
-               pevs[i].ntevs = 0;
-               nsinfo__zput(pev->nsi);
-               clear_perf_probe_event(&pevs[i]);
+               for (j = 0; j < pev->ntevs; j++)
+                       clear_probe_trace_event(&pev->tevs[j]);
+               zfree(&pev->tevs);
+               pev->ntevs = 0;
+               clear_perf_probe_event(pev);
        }
 }