net: dpaa2-mac: allow lynx PCS to manage mdiodev lifetime
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Wed, 7 Jun 2023 11:58:13 +0000 (12:58 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 9 Jun 2023 02:19:50 +0000 (19:19 -0700)
Put the mdiodev after lynx_pcs_create() so that the Lynx PCS driver
can manage the lifetime of the mdiodev its using.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c

index cb70855..c0f7dd3 100644 (file)
@@ -271,9 +271,9 @@ static int dpaa2_pcs_create(struct dpaa2_mac *mac,
        }
 
        mac->pcs = lynx_pcs_create(mdiodev);
+       mdio_device_put(mdiodev);
        if (!mac->pcs) {
                netdev_err(mac->net_dev, "lynx_pcs_create() failed\n");
-               mdio_device_free(mdiodev);
                return -ENOMEM;
        }
 
@@ -285,10 +285,7 @@ static void dpaa2_pcs_destroy(struct dpaa2_mac *mac)
        struct phylink_pcs *phylink_pcs = mac->pcs;
 
        if (phylink_pcs) {
-               struct mdio_device *mdio = lynx_get_mdio_device(phylink_pcs);
-
                lynx_pcs_destroy(phylink_pcs);
-               mdio_device_free(mdio);
                mac->pcs = NULL;
        }
 }