Commit 08932323 authored by Vladimir Oltean's avatar Vladimir Oltean Committed by David S. Miller

net: dsa: qca8k: put MDIO controller OF node if unavailable

It was pointed out during the review [1] of commit e66bf63a ("net:
dsa: qca8k: skip MDIO bus creation if its OF node has status =
"disabled"") that we now leak a reference to the "mdio" OF node if it is
disabled.

This is only a concern when using dynamic OF as far as I can tell (like
probing on an overlay), since OF nodes are never freed in the regular
case. Additionally, I'm unaware of any actual device trees (in
production or elsewhere) which have status = "disabled" for the MDIO OF
node. So handling this as a simple enhancement.

[1] https://lore.kernel.org/netdev/CAJq09z4--Ug+3FAmp=EimQ8HTQYOWOuVon-PUMGB5a1N=RPv4g@mail.gmail.com/Suggested-by: default avatarLuiz Angelo Daros de Luca <luizluca@gmail.com>
Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0cd216d7
...@@ -954,7 +954,7 @@ qca8k_mdio_register(struct qca8k_priv *priv) ...@@ -954,7 +954,7 @@ qca8k_mdio_register(struct qca8k_priv *priv)
mdio = of_get_child_by_name(dev->of_node, "mdio"); mdio = of_get_child_by_name(dev->of_node, "mdio");
if (mdio && !of_device_is_available(mdio)) if (mdio && !of_device_is_available(mdio))
goto out; goto out_put_node;
bus = devm_mdiobus_alloc(dev); bus = devm_mdiobus_alloc(dev);
if (!bus) { if (!bus) {
...@@ -988,7 +988,6 @@ qca8k_mdio_register(struct qca8k_priv *priv) ...@@ -988,7 +988,6 @@ qca8k_mdio_register(struct qca8k_priv *priv)
out_put_node: out_put_node:
of_node_put(mdio); of_node_put(mdio);
out:
return err; return err;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment