Commit 2fbabea6 authored by Kuan-Wei Chiu's avatar Kuan-Wei Chiu Committed by Stephen Boyd
Browse files

clk: mmp: pxa168: Fix memory leak in pxa168_clk_init()



In cases where mapping of mpmu/apmu/apbc registers fails, the code path
does not handle the failure gracefully, potentially leading to a memory
leak. This fix ensures proper cleanup by freeing the allocated memory
for 'pxa_unit' before returning.

Signed-off-by: default avatarKuan-Wei Chiu <visitorckw@gmail.com>
Link: https://lore.kernel.org/r/20231210175232.3414584-1-visitorckw@gmail.com


Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
parent bfbea9e5
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -308,18 +308,21 @@ static void __init pxa168_clk_init(struct device_node *np)
	pxa_unit->mpmu_base = of_iomap(np, 0);
	if (!pxa_unit->mpmu_base) {
		pr_err("failed to map mpmu registers\n");
		kfree(pxa_unit);
		return;
	}

	pxa_unit->apmu_base = of_iomap(np, 1);
	if (!pxa_unit->apmu_base) {
		pr_err("failed to map apmu registers\n");
		kfree(pxa_unit);
		return;
	}

	pxa_unit->apbc_base = of_iomap(np, 2);
	if (!pxa_unit->apbc_base) {
		pr_err("failed to map apbc registers\n");
		kfree(pxa_unit);
		return;
	}