Free resources before being disconnected from phy and calling core driver is
wrong and should not happen. It avoids a delay of 4-5s caused by the timeout of
phy_disconnect().
Signed-off-by: Romain Perier <romain.perier@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
struct rockchip_priv_data *priv = netdev_priv(ndev);
int err;
+ err = arc_emac_remove(ndev);
+
clk_disable_unprepare(priv->refclk);
if (priv->regulator)
regulator_disable(priv->regulator);
- err = arc_emac_remove(ndev);
free_netdev(ndev);
return err;
}