| .. | .. |
|---|
| 1158 | 1158 | err = register_netdev(dev); |
|---|
| 1159 | 1159 | if (err) { |
|---|
| 1160 | 1160 | dev_err(&pdev->dev, "Failed to register net device\n"); |
|---|
| 1161 | | - goto err_out_mdio_unregister; |
|---|
| 1161 | + goto err_out_phy_disconnect; |
|---|
| 1162 | 1162 | } |
|---|
| 1163 | 1163 | return 0; |
|---|
| 1164 | 1164 | |
|---|
| 1165 | +err_out_phy_disconnect: |
|---|
| 1166 | + phy_disconnect(dev->phydev); |
|---|
| 1165 | 1167 | err_out_mdio_unregister: |
|---|
| 1166 | 1168 | mdiobus_unregister(lp->mii_bus); |
|---|
| 1167 | 1169 | err_out_mdio: |
|---|
| .. | .. |
|---|
| 1185 | 1187 | struct r6040_private *lp = netdev_priv(dev); |
|---|
| 1186 | 1188 | |
|---|
| 1187 | 1189 | unregister_netdev(dev); |
|---|
| 1190 | + phy_disconnect(dev->phydev); |
|---|
| 1188 | 1191 | mdiobus_unregister(lp->mii_bus); |
|---|
| 1189 | 1192 | mdiobus_free(lp->mii_bus); |
|---|
| 1190 | 1193 | netif_napi_del(&lp->napi); |
|---|