We always put the mdio_node and disable the bus after probing, so perform these steps unconditionally. Signed-off-by: Sean Anderson --- (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 cacd5590731d..2799d168ed9d 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