LF-3712 net: stmmac: fix kernel dump when system suspend if EQOS down
authorJoakim Zhang <qiangqing.zhang@nxp.com>
Fri, 16 Apr 2021 01:33:26 +0000 (09:33 +0800)
committerJoakim Zhang <qiangqing.zhang@nxp.com>
Mon, 19 Apr 2021 09:14:25 +0000 (17:14 +0800)
commit8f37debc0c1d706d98f54e2220a2a2b3602908bb
treeb9933a66be619ae52284b2453f36044bd5c2ba00
parent1f39e9579fd32dc35933a16d06d3ec473764c7a8
LF-3712 net: stmmac: fix kernel dump when system suspend if EQOS down

Fix kernel dump when system suspend if EQOS down:

[  136.705424] ------------[ cut here ]------------
[  136.705428] enet_qos_root_clk already disabled
[  136.705466] WARNING: CPU: 0 PID: 503 at drivers/clk/clk.c:952 clk_core_disable+0xa0/0xa8
[  136.705468] Modules linked in:
[  136.705476] CPU: 0 PID: 503 Comm: sh Not tainted 5.10.29-103840-g470aa06b5004 #1064
[  136.705478] Hardware name: NXP i.MX8MPlus EVK board (DT)
[  136.705482] pstate: 40000085 (nZcv daIf -PAN -UAO -TCO BTYPE=--)
[  136.705485] pc : clk_core_disable+0xa0/0xa8
[  136.705488] lr : clk_core_disable+0xa0/0xa8
[  136.705490] sp : ffff800012433a10
[  136.705492] x29: ffff800012433a10 x28: ffff800011aafd68
[  136.705496] x27: 0000000000000000 x26: ffff800010784040
[  136.705500] x25: ffff800011ba0000 x24: 0000001fd4235124
[  136.705504] x23: 0000000000000000 x22: ffff800011b4e000
[  136.705508] x21: ffff0000c0defe00 x20: ffff0000c0addb00
[  136.705513] x19: ffff0000c0addb00 x18: ffff0000c74f44c0
[  136.705516] x17: 0000000000000000 x16: 0000000000000000
[  136.705520] x15: 0000000000000000 x14: 00000000000000fe
[  136.705524] x13: ffff8000119f1650 x12: 0000000000000001
[  136.705528] x11: 0000000000000000 x10: 00000000000009d0
[  136.705532] x9 : 00000000fffffffe x8 : 646165726c61206b
[  136.705536] x7 : 6c635f746f6f725f x6 : ffff800012433728
[  136.705540] x5 : ffff00017f36f900 x4 : 0000000000000000
[  136.705544] x3 : 0000000000000027 x2 : 0000000000000023
[  136.705548] x1 : 5d31c447452a7300 x0 : 0000000000000000
[  136.705552] Call trace:
[  136.705556]  clk_core_disable+0xa0/0xa8
[  136.705560]  clk_core_disable_lock+0x20/0x38
[  136.705563]  clk_disable+0x1c/0x28
[  136.705568]  stmmac_bus_clks_enable+0x4c/0xf0
[  136.705572]  stmmac_noirq_suspend+0x38/0x50
[  136.705578]  dpm_run_callback.isra.0+0x38/0xd8
[  136.705582]  __device_suspend_noirq+0xc4/0x1b8
[  136.705584]  dpm_suspend_noirq+0x100/0x258
[  136.705588]  suspend_devices_and_enter+0x160/0x5b8
[  136.705591]  pm_suspend+0x2ec/0x350
[  136.705595]  state_store+0x88/0x108
[  136.705599]  kobj_attr_store+0x14/0x28
[  136.705603]  sysfs_kf_write+0x40/0x50
[  136.705606]  kernfs_fop_write_iter+0x110/0x1a0
[  136.705610]  new_sync_write+0xe4/0x178
[  136.705613]  vfs_write+0x24c/0x380
[  136.705616]  ksys_write+0x68/0xf0
[  136.705619]  __arm64_sys_write+0x18/0x20
[  136.705625]  el0_svc_common.constprop.0+0x68/0x160
[  136.705628]  do_el0_svc+0x20/0x80
[  136.705632]  el0_svc+0x10/0x18
[  136.705635]  el0_sync_handler+0xa8/0xb0
[  136.705639]  el0_sync+0x140/0x180
[  136.705641] ---[ end trace f87fd1287132338e ]---
[  136.705644] ------------[ cut here ]------------
[  136.705645] enet_qos_root_clk already unprepared
[  136.705667] WARNING: CPU: 0 PID: 503 at drivers/clk/clk.c:810 clk_core_unprepare+0xe0/0x100
[  136.705669] Modules linked in:
[  136.705674] CPU: 0 PID: 503 Comm: sh Tainted: G        W         5.10.29-103840-g470aa06b5004 #1064
[  136.705675] Hardware name: NXP i.MX8MPlus EVK board (DT)
[  136.705678] pstate: 40000005 (nZcv daif -PAN -UAO -TCO BTYPE=--)
[  136.705681] pc : clk_core_unprepare+0xe0/0x100
[  136.705684] lr : clk_core_unprepare+0xe0/0x100
[  136.705686] sp : ffff800012433a20
[  136.705688] x29: ffff800012433a20 x28: ffff800011aafd68
[  136.705692] x27: 0000000000000000 x26: ffff800010784040
[  136.705696] x25: ffff800011ba0000 x24: 0000001fd4235124
[  136.705700] x23: 0000000000000000 x22: ffff800011b4e000
[  136.705704] x21: ffff0000c0defe00 x20: ffff0000c0e40940
[  136.705708] x19: ffff0000c0addb00 x18: ffff0000c74f44c0
[  136.705712] x17: 0000000000000000 x16: 0000000000000000
[  136.705716] x15: 0000000000000000 x14: 00000000000000fe
[  136.705720] x13: ffff8000119f1650 x12: 0000000000000001
[  136.705724] x11: 0000000000000000 x10: 00000000000009d0
[  136.705728] x9 : 00000000fffffffe x8 : 646165726c61206b
[  136.705731] x7 : 6c635f746f6f725f x6 : ffff800012433738
[  136.705735] x5 : ffff00017f36f900 x4 : 0000000000000000
[  136.705739] x3 : 0000000000000027 x2 : 0000000000000023
[  136.705743] x1 : 5d31c447452a7300 x0 : 0000000000000000
[  136.705747] Call trace:
[  136.705751]  clk_core_unprepare+0xe0/0x100
[  136.705754]  clk_unprepare+0x28/0x40
[  136.705757]  stmmac_bus_clks_enable+0x58/0xf0
[  136.705760]  stmmac_noirq_suspend+0x38/0x50
[  136.705764]  dpm_run_callback.isra.0+0x38/0xd8
[  136.705767]  __device_suspend_noirq+0xc4/0x1b8
[  136.705770]  dpm_suspend_noirq+0x100/0x258
[  136.705772]  suspend_devices_and_enter+0x160/0x5b8
[  136.705775]  pm_suspend+0x2ec/0x350
[  136.705778]  state_store+0x88/0x108
[  136.705781]  kobj_attr_store+0x14/0x28
[  136.705784]  sysfs_kf_write+0x40/0x50
[  136.705786]  kernfs_fop_write_iter+0x110/0x1a0
[  136.705789]  new_sync_write+0xe4/0x178
[  136.705792]  vfs_write+0x24c/0x380
[  136.705795]  ksys_write+0x68/0xf0
[  136.705798]  __arm64_sys_write+0x18/0x20
[  136.705801]  el0_svc_common.constprop.0+0x68/0x160
[  136.705804]  do_el0_svc+0x20/0x80
[  136.705807]  el0_svc+0x10/0x18
[  136.705810]  el0_sync_handler+0xa8/0xb0
[  136.705812]  el0_sync+0x140/0x180
[  136.705814] ---[ end trace f87fd1287132338f ]---

Fixes: 0ad8ae3531f2 LF-3101-1 net: stmmac: fix system hang caused by eee_ctrl_timer during suspend/resume
Reviewed-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c