[PATCH 0/2][SRU][J][OEM-5.14][OEM-5.17] Failed to resume from S3 blocked by atlantic driver[1d6a:94c0]
AceLan Kao
acelan.kao at canonical.com
Mon Jul 18 02:43:22 UTC 2022
From: "Chia-Lin Kao (AceLan)" <acelan.kao at canonical.com>
BugLink: https://bugs.launchpad.net/bugs/1981950
[Impact]
The system with atlantic NIC[1d6a:94c0] fails to resume from S3 and hang
with the following errors
Jun 7 13:13:54 ubuntu kernel: [ 116.000561] aq_nic_deinit+0xb4/0xd0 [atlantic]
Jun 7 13:13:54 ubuntu kernel: [ 116.000566] atl_resume_common+0x6d/0x110 [atlantic]
Jun 7 13:13:54 ubuntu kernel: [ 116.000571] aq_pm_resume_restore+0x13/0x20 [atlantic]
Jun 7 13:13:54 ubuntu kernel: [ 116.000575] pci_pm_resume+0x5c/0x90
Jun 7 13:13:54 ubuntu kernel: [ 116.000578] ? pci_pm_thaw+0x80/0x80
Jun 7 13:13:54 ubuntu kernel: [ 116.000580] dpm_run_callback+0x4e/0x120
Jun 7 13:13:54 ubuntu kernel: [ 116.000582] device_resume+0xad/0x200
Jun 7 13:13:54 ubuntu kernel: [ 116.000583] async_resume+0x1e/0x40
Jun 7 13:13:54 ubuntu kernel: [ 116.000585] async_run_entry_fn+0x33/0x120
Jun 7 13:13:54 ubuntu kernel: [ 116.000586] process_one_work+0x220/0x3c0
Jun 7 13:13:54 ubuntu kernel: [ 116.000588] worker_thread+0x4d/0x3f0
Jun 7 13:13:54 ubuntu kernel: [ 116.000589] ? process_one_work+0x3c0/0x3c0
Jun 7 13:13:54 ubuntu kernel: [ 116.000591] kthread+0x12a/0x150
Jun 7 13:13:54 ubuntu kernel: [ 116.000592] ? set_kthread_struct+0x40/0x40
Jun 7 13:13:54 ubuntu kernel: [ 116.000593] ret_from_fork+0x22/0x30
Jun 7 13:13:54 ubuntu kernel: [ 116.000596] </TASK>
Jun 7 13:13:54 ubuntu kernel: [ 116.000596] ---[ end trace 9d3fcd41d27dae25 ]---
[Fix]
aq_nic_deinit() has been called while suspending, so don't need to call it
again on resuming.
Applied below 2 commits from v5.19-rc7 fix the issue, and the 2 commits
have been applied to stable kernels v5.10, v5.15, and v5.18.
2e15c51fefaf net: atlantic: remove aq_nic_deinit() when resume
0f3325076038 net: atlantic: remove deep parameter on suspend/resume functions
[Test]
Verified on the system with atlantic NIC[1d6a:94c0] and run S3 test for
more than 200 times.
[Where problems could occur]
The 2 commits remove the redundant code, aq_nic_deinit() has been called
while suspending, so we don't need to call it again while resuming, and
this fix the issue. I don't think this would introduce any regressions.
Chia-Lin Kao (AceLan) (2):
net: atlantic: remove deep parameter on suspend/resume functions
net: atlantic: remove aq_nic_deinit() when resume
.../ethernet/aquantia/atlantic/aq_pci_func.c | 23 +++++++------------
1 file changed, 8 insertions(+), 15 deletions(-)
--
2.25.1
More information about the kernel-team
mailing list