[PATCH net-next v4 4/7] net: axienet: Simplify axienet_mdio_setup

Sean Anderson posted 7 patches 2 months ago
[PATCH net-next v4 4/7] net: axienet: Simplify axienet_mdio_setup
Posted by Sean Anderson 2 months ago
We always put the mdio_node and disable the bus after probing, so
perform these steps unconditionally.

Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
---

(no changes since v1)

 drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c b/drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c
index dd5f961801dc..1903a1d50b05 100644
--- a/drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c
+++ b/drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c
@@ -302,19 +302,14 @@ int axienet_mdio_setup(struct axienet_local *lp)
 	ret = axienet_mdio_enable(bus, mdio_node);
 	if (ret < 0)
 		goto unregister;
+
 	ret = of_mdiobus_register(bus, mdio_node);
-	if (ret)
-		goto unregister_mdio_enabled;
 	of_node_put(mdio_node);
 	axienet_mdio_mdc_disable(lp);
-	return 0;
-
-unregister_mdio_enabled:
-	axienet_mdio_mdc_disable(lp);
-unregister:
-	of_node_put(mdio_node);
-	mdiobus_free(bus);
-	lp->mii_bus = NULL;
+	if (ret) {
+		mdiobus_free(bus);
+		lp->mii_bus = NULL;
+	}
 	return ret;
 }
 
-- 
2.35.1.1320.gc452695387.dirty
Re: [PATCH net-next v4 4/7] net: axienet: Simplify axienet_mdio_setup
Posted by Simon Horman 2 months ago
On Tue, Aug 05, 2025 at 11:34:53AM -0400, Sean Anderson wrote:
> We always put the mdio_node and disable the bus after probing, so
> perform these steps unconditionally.
> 
> Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
> ---
> 
> (no changes since v1)
> 
>  drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c | 15 +++++----------
>  1 file changed, 5 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c b/drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c
> index dd5f961801dc..1903a1d50b05 100644
> --- a/drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c
> +++ b/drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c
> @@ -302,19 +302,14 @@ int axienet_mdio_setup(struct axienet_local *lp)
>  	ret = axienet_mdio_enable(bus, mdio_node);
>  	if (ret < 0)
>  		goto unregister;
> +
>  	ret = of_mdiobus_register(bus, mdio_node);
> -	if (ret)
> -		goto unregister_mdio_enabled;
>  	of_node_put(mdio_node);
>  	axienet_mdio_mdc_disable(lp);
> -	return 0;
> -
> -unregister_mdio_enabled:
> -	axienet_mdio_mdc_disable(lp);
> -unregister:

Hi Sean,

This function still has code that jumps to unregister.
So this causes a compile error.

This does appear to be addressed in patch 6/7.
So I guess it is just an artefact of refactoring the patches
or something like that.

> -	of_node_put(mdio_node);
> -	mdiobus_free(bus);
> -	lp->mii_bus = NULL;
> +	if (ret) {
> +		mdiobus_free(bus);
> +		lp->mii_bus = NULL;
> +	}
>  	return ret;
>  }

## Form letter - net-next-closed

The merge window for v6.17 has begun and therefore net-next is closed
for new drivers, features, code refactoring and optimizations. We are
currently accepting bug fixes only.

Please repost when net-next reopens after 11th August.

RFC patches sent for review only are obviously welcome at any time.

See: https://www.kernel.org/doc/html/next/process/maintainer-netdev.html#development-cycle

-- 
pw-bot: defer