On 2/20/2024 3:17 PM, Jesse Brandeburg wrote:
The ice_suspend/ice_resume cycle was not updated when refactoring was done to the init path and I suspect this allowed a bug to creep in where the driver was not correctly reinitialized during resume.I was able to test against 6.1.77 kernel and that ice driver works fine for suspend/resume with no panic. Instead of tearing down interrupts and freeing a bunch of memory during suspend, just begin an internal reset event, which takes care of all the correct steps during suspend. Likewise during resume we'll just let the reset complete and the driver comes right back to life. This mirrors the behavior of other suspend/resume code in drivers like fm10k. Older kernel commits were made to this driver and to the i40e driver to try to fix "disk" or hibernate suspend events with many CPUs. The PM subsystem was updated since then but the drivers kept the old flows. Testing with rtcwake -m [disk | mem] -s 10 - passes but my system won't hibernate due to too much RAM, not enough swap. The code is slightly refactored during this change in order to share a common "prep" path between suspend and the pci error handler functions which all do the same thing, so introduce ice_quiesce_before_reset(). While doing all this and compile testing I ran across the pm.h changes to get rid of compilation problems when CONFIG_PM=n etc, so those small changes are included here as well.
...
Fixes: 5b246e533d01 ("ice: split probe into smaller functions")
Reported-by: Robert Elliott <[email protected]>
Reviewed-by: Jacob Keller <[email protected]>
Signed-off-by: Jesse Brandeburg <[email protected]>
---
NOTE:
Requires Amritha's patch:
https://patchwork.ozlabs.org/project/intel-wired-lan/patch/170785373072.3325.9129916579186572531.st...@anambiarhost.jf.intel.com/
to be applied before this will pass testing cleanly.
I think this may be the other way around? It looks to be clean for netdev (doesn't have Amritha's patch), but it's not applying to net-queue (has Amritha's patch).
> base-commit: 23f9c2c066e7e5052406fb8f04a115d3d0260b22 Base commit also seems to be a netdev commit.Since Amritha's patch is pending to netdev [1], I think we need a version that will apply with Amritha's changes.
Thanks, Tony[1] https://lore.kernel.org/netdev/[email protected]/
