RE: [PATCH] regulator: Call of_node_put() only once in rzg2l_usb_vbus_regulator_probe()
From: Biju Das
Date: Tue Sep 24 2024 - 07:51:55 EST
Hi Markus Elfring,
Thanks for the patch.
> -----Original Message-----
> From: Markus Elfring <Markus.Elfring@xxxxxx>
> Sent: Tuesday, September 24, 2024 12:35 PM
> Subject: [PATCH] regulator: Call of_node_put() only once in rzg2l_usb_vbus_regulator_probe()
>
> From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
> Date: Tue, 24 Sep 2024 13:21:52 +0200
>
> An of_node_put(config.of_node) call was immediately used after a pointer check for a
> devm_regulator_register() call in this function implementation.
> Thus call such a function only once instead directly before the check.
>
> This issue was transformed by using the Coccinelle software.
>
> Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Reviewed-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>
Cheers,
Biju
> ---
> drivers/regulator/renesas-usb-vbus-regulator.c | 7 ++-----
> 1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/regulator/renesas-usb-vbus-regulator.c b/drivers/regulator/renesas-usb-vbus-
> regulator.c
> index 4eceb6b54497..dec7cac5e8d5 100644
> --- a/drivers/regulator/renesas-usb-vbus-regulator.c
> +++ b/drivers/regulator/renesas-usb-vbus-regulator.c
> @@ -49,13 +49,10 @@ static int rzg2l_usb_vbus_regulator_probe(struct platform_device *pdev)
> return dev_err_probe(dev, -ENODEV, "regulator node not found\n");
>
> rdev = devm_regulator_register(dev, &rzg2l_usb_vbus_rdesc, &config);
> - if (IS_ERR(rdev)) {
> - of_node_put(config.of_node);
> + of_node_put(config.of_node);
> + if (IS_ERR(rdev))
> return dev_err_probe(dev, PTR_ERR(rdev),
> "not able to register vbus regulator\n");
> - }
> -
> - of_node_put(config.of_node);
>
> return 0;
> }
> --
> 2.46.1