|
@@ -3366,12 +3366,19 @@ int stmmac_dvr_probe(struct device *device,
|
|
|
}
|
|
|
|
|
|
ret = register_netdev(ndev);
|
|
|
- if (ret)
|
|
|
+ if (ret) {
|
|
|
netdev_err(priv->dev, "%s: ERROR %i registering the device\n",
|
|
|
__func__, ret);
|
|
|
+ goto error_netdev_register;
|
|
|
+ }
|
|
|
|
|
|
return ret;
|
|
|
|
|
|
+error_netdev_register:
|
|
|
+ if (priv->hw->pcs != STMMAC_PCS_RGMII &&
|
|
|
+ priv->hw->pcs != STMMAC_PCS_TBI &&
|
|
|
+ priv->hw->pcs != STMMAC_PCS_RTBI)
|
|
|
+ stmmac_mdio_unregister(ndev);
|
|
|
error_mdio_register:
|
|
|
netif_napi_del(&priv->napi);
|
|
|
error_hw_init:
|