net: ethernet: ixgbe: don't call devm_mdiobus_free()
authorBartosz Golaszewski <bgolaszewski@baylibre.com>
Mon, 29 Jun 2020 12:03:38 +0000 (14:03 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 30 Jun 2020 22:57:34 +0000 (15:57 -0700)
The idea behind devres is that the release callbacks are called if
probe fails. As we now check the return value of ixgbe_mii_bus_init(),
we can drop the call devm_mdiobus_free() in error path as the release
callback will be called automatically.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c

index 2fb97967961c43893b2d06fef0df9bc476dda426..7980d7265e106b3f30167f21e593735780fc5e5e 100644 (file)
@@ -905,7 +905,6 @@ s32 ixgbe_mii_bus_init(struct ixgbe_hw *hw)
        struct pci_dev *pdev = adapter->pdev;
        struct device *dev = &adapter->netdev->dev;
        struct mii_bus *bus;
-       int err = -ENODEV;
 
        bus = devm_mdiobus_alloc(dev);
        if (!bus)
@@ -923,7 +922,7 @@ s32 ixgbe_mii_bus_init(struct ixgbe_hw *hw)
        case IXGBE_DEV_ID_X550EM_A_1G_T:
        case IXGBE_DEV_ID_X550EM_A_1G_T_L:
                if (!ixgbe_x550em_a_has_mii(hw))
-                       goto ixgbe_no_mii_bus;
+                       return -ENODEV;
                bus->read = &ixgbe_x550em_a_mii_bus_read;
                bus->write = &ixgbe_x550em_a_mii_bus_write;
                break;
@@ -948,15 +947,8 @@ s32 ixgbe_mii_bus_init(struct ixgbe_hw *hw)
         */
        hw->phy.mdio.mode_support = MDIO_SUPPORTS_C45 | MDIO_SUPPORTS_C22;
 
-       err = mdiobus_register(bus);
-       if (!err) {
-               adapter->mii_bus = bus;
-               return 0;
-       }
-
-ixgbe_no_mii_bus:
-       devm_mdiobus_free(dev, bus);
-       return err;
+       adapter->mii_bus = bus;
+       return mdiobus_register(bus);
 }
 
 /**