Skip to content

Commit 13c277c

Browse files
SuperDavidWurkhuangtao
authored andcommitted
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
1 parent a5b101d commit 13c277c

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

drivers/net/ethernet/stmicro/stmmac/dwmac-rk-tool.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1096,7 +1096,9 @@ static int dwmac_rk_loopback_run(struct stmmac_priv *priv,
10961096
/* wait for phy and controller ready */
10971097
usleep_range(100000, 200000);
10981098

1099-
dwmac_rk_init(ndev, lb_priv);
1099+
ret = dwmac_rk_init(ndev, lb_priv);
1100+
if (ret)
1101+
goto exit_init;
11001102
dwmac_rk_set_loopback(priv, lb_priv->type, lb_priv->speed, true);
11011103

11021104
if (lb_priv->scan) {
@@ -1120,6 +1122,7 @@ static int dwmac_rk_loopback_run(struct stmmac_priv *priv,
11201122
dwmac_rk_release(ndev, lb_priv);
11211123
dwmac_rk_set_loopback(priv, lb_priv->type, lb_priv->speed, false);
11221124

1125+
exit_init:
11231126
if (ndev_up)
11241127
ndev->netdev_ops->ndo_open(ndev);
11251128

0 commit comments

Comments
 (0)