mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 12:57:06 +09:00
net: ethernet: stmicro: Exit loopback when dwmac_rk_init failed
This patch fixed the following issue: [ 106.688843] Call trace: [ 106.689091] dwmac4_release_tx_desc+0x0/0x10 [ 106.689495] dwmac_rk_loopback_with_identify+0x48/0x54 [ 106.689971] dwmac_rk_loopback_run.constprop.10+0x55c/0xcf8 [ 106.690482] phy_lb_scan_store+0xdc/0xe0 [ 106.690848] dev_attr_store+0x18/0x28 [ 106.691191] sysfs_kf_write+0x48/0x58 [ 106.691531] kernfs_fop_write+0xf4/0x220 [ 106.691896] __vfs_write+0x34/0x158 [ 106.692219] vfs_write+0xb0/0x1d0 [ 106.692530] ksys_write+0x64/0xe0 [ 106.692842] __arm64_sys_write+0x14/0x20 Signed-off-by: David Wu <david.wu@rock-chips.com> Change-Id: I7d36105d20cc94275842f07c9d7aaa49cc6daa06
This commit is contained in:
@@ -1216,7 +1216,9 @@ static int dwmac_rk_loopback_run(struct stmmac_priv *priv,
|
||||
/* wait for phy and controller ready */
|
||||
usleep_range(100000, 200000);
|
||||
|
||||
dwmac_rk_init(ndev, lb_priv);
|
||||
ret = dwmac_rk_init(ndev, lb_priv);
|
||||
if (ret)
|
||||
goto exit_init;
|
||||
dwmac_rk_set_loopback(priv, lb_priv->type, lb_priv->speed, true);
|
||||
|
||||
if (lb_priv->scan) {
|
||||
@@ -1240,6 +1242,7 @@ out:
|
||||
dwmac_rk_release(ndev, lb_priv);
|
||||
dwmac_rk_set_loopback(priv, lb_priv->type, lb_priv->speed, false);
|
||||
|
||||
exit_init:
|
||||
if (ndev_up)
|
||||
ndev->netdev_ops->ndo_open(ndev);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user