mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 11:06:41 -05:00
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>
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user