mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 05:44:45 +01:00
clk: renesas: r9a06g032: Fix memory leak in error path
The current code uses of_iomap() to map registers but never calls
iounmap() on any error path after the mapping. This causes a memory
leak when probe fails after successful ioremap, for example when
of_clk_add_provider() or r9a06g032_add_clk_domain() fails.
Replace of_iomap() with devm_of_iomap() to automatically unmap the
region on probe failure. Update the error check accordingly to use
IS_ERR() and PTR_ERR() since devm_of_iomap() returns ERR_PTR on error.
Fixes: 4c3d88526e ("clk: renesas: Renesas R9A06G032 clock driver")
Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20251030061603.1954-1-vulab@iscas.ac.cn
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
This commit is contained in:
parent
7a9d0318da
commit
f8def051bb
1 changed files with 3 additions and 3 deletions
|
|
@ -1333,9 +1333,9 @@ static int __init r9a06g032_clocks_probe(struct platform_device *pdev)
|
|||
if (IS_ERR(mclk))
|
||||
return PTR_ERR(mclk);
|
||||
|
||||
clocks->reg = of_iomap(np, 0);
|
||||
if (WARN_ON(!clocks->reg))
|
||||
return -ENOMEM;
|
||||
clocks->reg = devm_of_iomap(dev, np, 0, NULL);
|
||||
if (IS_ERR(clocks->reg))
|
||||
return PTR_ERR(clocks->reg);
|
||||
|
||||
r9a06g032_init_h2mode(clocks);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue