Comment 0 for bug 1981950

Revision history for this message
AceLan Kao (acelankao) wrote :

[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 kernel v5.10, v5.15, and v5.18, so only submit the SRU to oem kernels.

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.