Commit dc4d1654 authored by Ian Rogers's avatar Ian Rogers Committed by Namhyung Kim
Browse files

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: default avatarIan Rogers <irogers@google.com>
Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
parent b4e44399
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -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);
	}
}