clk: mmp: pxa168: Fix memory leak in pxa168_clk_init()
[ Upstream commit 2fbabea626b6467eb4e6c4cb7a16523da12e43b4 ] 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: Kuan-Wei Chiu <visitorckw@gmail.com> Link: https://lore.kernel.org/r/20231210175232.3414584-1-visitorckw@gmail.com Signed-off-by: Stephen Boyd <sboyd@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Родитель
fcc477e610
Коммит
54a84bad7b
|
@ -258,18 +258,21 @@ static void __init pxa168_clk_init(struct device_node *np)
|
||||||
pxa_unit->mpmu_base = of_iomap(np, 0);
|
pxa_unit->mpmu_base = of_iomap(np, 0);
|
||||||
if (!pxa_unit->mpmu_base) {
|
if (!pxa_unit->mpmu_base) {
|
||||||
pr_err("failed to map mpmu registers\n");
|
pr_err("failed to map mpmu registers\n");
|
||||||
|
kfree(pxa_unit);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
pxa_unit->apmu_base = of_iomap(np, 1);
|
pxa_unit->apmu_base = of_iomap(np, 1);
|
||||||
if (!pxa_unit->apmu_base) {
|
if (!pxa_unit->apmu_base) {
|
||||||
pr_err("failed to map apmu registers\n");
|
pr_err("failed to map apmu registers\n");
|
||||||
|
kfree(pxa_unit);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
pxa_unit->apbc_base = of_iomap(np, 2);
|
pxa_unit->apbc_base = of_iomap(np, 2);
|
||||||
if (!pxa_unit->apbc_base) {
|
if (!pxa_unit->apbc_base) {
|
||||||
pr_err("failed to map apbc registers\n");
|
pr_err("failed to map apbc registers\n");
|
||||||
|
kfree(pxa_unit);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче