Remove redundant fwnode cleanup in of_mdiobus_register_device() and xpcs_plat_init_dev(). mdio_device_free() eventually calls mdio_device_release(), which already performs fwnode_handle_put(), making the manual cleanup unnecessary. Combine fwnode_handle_get() with device_set_node() in of_mdiobus_register_device() for clarity. Signed-off-by: Buday Csaba --- Previously discussed here: https://lore.kernel.org/all/c01fc3d0-050e-4ea7-970f-393268430824@lunn.ch/ --- drivers/net/mdio/of_mdio.c | 5 +---- drivers/net/pcs/pcs-xpcs-plat.c | 3 --- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/net/mdio/of_mdio.c b/drivers/net/mdio/of_mdio.c index 1357348e0..b8d298c04 100644 --- a/drivers/net/mdio/of_mdio.c +++ b/drivers/net/mdio/of_mdio.c @@ -63,14 +63,11 @@ static int of_mdiobus_register_device(struct mii_bus *mdio, /* Associate the OF node with the device structure so it * can be looked up later. */ - fwnode_handle_get(fwnode); - device_set_node(&mdiodev->dev, fwnode); + device_set_node(&mdiodev->dev, fwnode_handle_get(fwnode)); /* All data is now stored in the mdiodev struct; register it. */ rc = mdio_device_register(mdiodev); if (rc) { - device_set_node(&mdiodev->dev, NULL); - fwnode_handle_put(fwnode); mdio_device_free(mdiodev); return rc; } diff --git a/drivers/net/pcs/pcs-xpcs-plat.c b/drivers/net/pcs/pcs-xpcs-plat.c index c422e8d8b..b8c48f9ef 100644 --- a/drivers/net/pcs/pcs-xpcs-plat.c +++ b/drivers/net/pcs/pcs-xpcs-plat.c @@ -365,9 +365,6 @@ static int xpcs_plat_init_dev(struct dw_xpcs_plat *pxpcs) err_clean_data: mdiodev->dev.platform_data = NULL; - fwnode_handle_put(dev_fwnode(&mdiodev->dev)); - device_set_node(&mdiodev->dev, NULL); - mdio_device_free(mdiodev); return ret; base-commit: e2c20036a8879476c88002730d8a27f4e3c32d4b -- 2.39.5