Skip to content

Commit 949134e

Browse files
Ethan Tidmoregregkh
authored andcommitted
pinctrl: pinctrl-pic32: Fix resource leak
[ Upstream commit fe55606 ] Fix three possible resource leaks by using the devres version of clk_prepare_enable(). Also, update error message accordingly. Detected by Smatch: drivers/pinctrl/pinctrl-pic32.c:2211 pic32_pinctrl_probe() warn: 'pctl->clk' from clk_prepare_enable() not released on lines: 2208. drivers/pinctrl/pinctrl-pic32.c:2274 pic32_gpio_probe() warn: 'bank->clk' from clk_prepare_enable() not released on lines: 2264,2272. Fixes: 2ba384e ("pinctrl: pinctrl-pic32: Add PIC32 pin control driver") Signed-off-by: Ethan Tidmore <ethantidmore06@gmail.com> Signed-off-by: Linus Walleij <linusw@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent e567fe2 commit 949134e

1 file changed

Lines changed: 4 additions & 16 deletions

File tree

drivers/pinctrl/pinctrl-pic32.c

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2174,16 +2174,10 @@ static int pic32_pinctrl_probe(struct platform_device *pdev)
21742174
if (IS_ERR(pctl->reg_base))
21752175
return PTR_ERR(pctl->reg_base);
21762176

2177-
pctl->clk = devm_clk_get(&pdev->dev, NULL);
2177+
pctl->clk = devm_clk_get_enabled(&pdev->dev, NULL);
21782178
if (IS_ERR(pctl->clk)) {
21792179
ret = PTR_ERR(pctl->clk);
2180-
dev_err(&pdev->dev, "clk get failed\n");
2181-
return ret;
2182-
}
2183-
2184-
ret = clk_prepare_enable(pctl->clk);
2185-
if (ret) {
2186-
dev_err(&pdev->dev, "clk enable failed\n");
2180+
dev_err(&pdev->dev, "Failed to get and enable clock\n");
21872181
return ret;
21882182
}
21892183

@@ -2239,16 +2233,10 @@ static int pic32_gpio_probe(struct platform_device *pdev)
22392233
if (irq < 0)
22402234
return irq;
22412235

2242-
bank->clk = devm_clk_get(&pdev->dev, NULL);
2236+
bank->clk = devm_clk_get_enabled(&pdev->dev, NULL);
22432237
if (IS_ERR(bank->clk)) {
22442238
ret = PTR_ERR(bank->clk);
2245-
dev_err(&pdev->dev, "clk get failed\n");
2246-
return ret;
2247-
}
2248-
2249-
ret = clk_prepare_enable(bank->clk);
2250-
if (ret) {
2251-
dev_err(&pdev->dev, "clk enable failed\n");
2239+
dev_err(&pdev->dev, "Failed to get and enable clock\n");
22522240
return ret;
22532241
}
22542242

0 commit comments

Comments
 (0)