Commit 7e512f5a authored by Dhananjay Ugwekar's avatar Dhananjay Ugwekar Committed by Ingo Molnar
Browse files

perf/x86/rapl: Fix error handling in init_rapl_pmus()



If init_rapl_pmu() fails while allocating memory for "rapl_pmu" objects,
we miss freeing the "rapl_pmus" object in the error path. Fix that.

Fixes: 9b99d65c ("perf/x86/rapl: Move the pmu allocation out of CPU hotplug")
Signed-off-by: default avatarDhananjay Ugwekar <dhananjay.ugwekar@amd.com>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20250320100617.4480-1-dhananjay.ugwekar@amd.com
parent 65a99264
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -730,6 +730,7 @@ static int __init init_rapl_pmus(struct rapl_pmus **rapl_pmus_ptr, int rapl_pmu_
{
	int nr_rapl_pmu = topology_max_packages();
	struct rapl_pmus *rapl_pmus;
	int ret;

	/*
	 * rapl_pmu_scope must be either PKG, DIE or CORE
@@ -761,7 +762,11 @@ static int __init init_rapl_pmus(struct rapl_pmus **rapl_pmus_ptr, int rapl_pmu_
	rapl_pmus->pmu.module		= THIS_MODULE;
	rapl_pmus->pmu.capabilities	= PERF_PMU_CAP_NO_EXCLUDE;

	return init_rapl_pmu(rapl_pmus);
	ret = init_rapl_pmu(rapl_pmus);
	if (ret)
		kfree(rapl_pmus);

	return ret;
}

static struct rapl_model model_snb = {