2024-06-06 16:19:36

by Andy Shevchenko

[permalink] [raw]
Subject: [PATCH net v2 1/1] net dsa: qca8k: fix usages of device_get_named_child_node()

The documentation for device_get_named_child_node() mentions this
important point:

"
The caller is responsible for calling fwnode_handle_put() on the
returned fwnode pointer.
"

Add fwnode_handle_put() to avoid leaked references.

Fixes: 1e264f9d2918 ("net: dsa: qca8k: add LEDs basic support")
Reviewed-by: Simon Horman <[email protected]>
Signed-off-by: Andy Shevchenko <[email protected]>
---
v2: added one missed call (Jacub), added tag (Simon)
drivers/net/dsa/qca/qca8k-leds.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/net/dsa/qca/qca8k-leds.c b/drivers/net/dsa/qca/qca8k-leds.c
index 811ebeeff4ed..43ac68052baf 100644
--- a/drivers/net/dsa/qca/qca8k-leds.c
+++ b/drivers/net/dsa/qca/qca8k-leds.c
@@ -431,8 +431,11 @@ qca8k_parse_port_leds(struct qca8k_priv *priv, struct fwnode_handle *port, int p
init_data.devicename = kasprintf(GFP_KERNEL, "%s:0%d",
priv->internal_mdio_bus->id,
port_num);
- if (!init_data.devicename)
+ if (!init_data.devicename) {
+ fwnode_handle_put(led);
+ fwnode_handle_put(leds);
return -ENOMEM;
+ }

ret = devm_led_classdev_register_ext(priv->dev, &port_led->cdev, &init_data);
if (ret)
@@ -441,6 +444,7 @@ qca8k_parse_port_leds(struct qca8k_priv *priv, struct fwnode_handle *port, int p
kfree(init_data.devicename);
}

+ fwnode_handle_put(leds);
return 0;
}

@@ -471,9 +475,13 @@ qca8k_setup_led_ctrl(struct qca8k_priv *priv)
* the correct port for LED setup.
*/
ret = qca8k_parse_port_leds(priv, port, qca8k_port_to_phy(port_num));
- if (ret)
+ if (ret) {
+ fwnode_handle_put(port);
+ fwnode_handle_put(ports);
return ret;
+ }
}

+ fwnode_handle_put(ports);
return 0;
}
--
2.43.0.rc1.1336.g36b5255a03ac



2024-06-10 12:20:56

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH net v2 1/1] net dsa: qca8k: fix usages of device_get_named_child_node()

Hello:

This patch was applied to netdev/net.git (main)
by David S. Miller <[email protected]>:

On Thu, 6 Jun 2024 19:13:03 +0300 you wrote:
> The documentation for device_get_named_child_node() mentions this
> important point:
>
> "
> The caller is responsible for calling fwnode_handle_put() on the
> returned fwnode pointer.
> "
>
> [...]

Here is the summary with links:
- [net,v2,1/1] net dsa: qca8k: fix usages of device_get_named_child_node()
https://git.kernel.org/netdev/net/c/d029edefed39

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html