Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf probe-event: Ensure probe event nsinfo is always cleared

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>

authored by

Ian Rogers and committed by
Namhyung Kim
dc4d1654 b4e44399

+6 -6
+6 -6
tools/perf/util/probe-event.c
··· 2419 2419 } 2420 2420 pev->nargs = 0; 2421 2421 zfree(&pev->args); 2422 + nsinfo__zput(pev->nsi); 2422 2423 } 2423 2424 2424 2425 #define strdup_or_goto(str, label) \ ··· 3768 3767 /* Loop 3: cleanup and free trace events */ 3769 3768 for (i = 0; i < npevs; i++) { 3770 3769 pev = &pevs[i]; 3771 - for (j = 0; j < pevs[i].ntevs; j++) 3772 - clear_probe_trace_event(&pevs[i].tevs[j]); 3773 - zfree(&pevs[i].tevs); 3774 - pevs[i].ntevs = 0; 3775 - nsinfo__zput(pev->nsi); 3776 - clear_perf_probe_event(&pevs[i]); 3770 + for (j = 0; j < pev->ntevs; j++) 3771 + clear_probe_trace_event(&pev->tevs[j]); 3772 + zfree(&pev->tevs); 3773 + pev->ntevs = 0; 3774 + clear_perf_probe_event(pev); 3777 3775 } 3778 3776 } 3779 3777