[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.
[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] common+ 0x6d/0x110 [atlantic] restore+ 0x13/0x20 [atlantic] resume+ 0x5c/0x90 thaw+0x80/ 0x80 callback+ 0x4e/0x120 resume+ 0xad/0x200 0x1e/0x40 entry_fn+ 0x33/0x120 one_work+ 0x220/0x3c0 thread+ 0x4d/0x3f0 one_work+ 0x3c0/0x3c0 struct+ 0x40/0x40 fork+0x22/ 0x30
Jun 7 13:13:54 ubuntu kernel: [ 116.000566] atl_resume_
Jun 7 13:13:54 ubuntu kernel: [ 116.000571] aq_pm_resume_
Jun 7 13:13:54 ubuntu kernel: [ 116.000575] pci_pm_
Jun 7 13:13:54 ubuntu kernel: [ 116.000578] ? pci_pm_
Jun 7 13:13:54 ubuntu kernel: [ 116.000580] dpm_run_
Jun 7 13:13:54 ubuntu kernel: [ 116.000582] device_
Jun 7 13:13:54 ubuntu kernel: [ 116.000583] async_resume+
Jun 7 13:13:54 ubuntu kernel: [ 116.000585] async_run_
Jun 7 13:13:54 ubuntu kernel: [ 116.000586] process_
Jun 7 13:13:54 ubuntu kernel: [ 116.000588] worker_
Jun 7 13:13:54 ubuntu kernel: [ 116.000589] ? process_
Jun 7 13:13:54 ubuntu kernel: [ 116.000591] kthread+0x12a/0x150
Jun 7 13:13:54 ubuntu kernel: [ 116.000592] ? set_kthread_
Jun 7 13:13:54 ubuntu kernel: [ 116.000593] ret_from_
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.