]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
ice: recap the VSI and QoS info after rebuild
authorAaron Ma <aaron.ma@canonical.com>
Thu, 29 Jan 2026 04:00:26 +0000 (12:00 +0800)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Wed, 25 Feb 2026 19:43:57 +0000 (11:43 -0800)
commit6aa07e23dd3ccd35a0100c06fcb6b6c3b01e7965
tree820012fe18ff72ef4baa00b69e85d3dd360daa6d
parent2c31557336a8e4d209ed8d4513cef2c0f15e7ef4
ice: recap the VSI and QoS info after rebuild

Fix IRDMA hardware initialization timeout (-110) after resume by
separating VSI-dependent configuration from RDMA resource allocation,
ensuring VSI is rebuilt before IRDMA accesses it.

After resume from suspend, IRDMA hardware initialization fails:
  ice: IRDMA hardware initialization FAILED init_state=4 status=-110

Separate RDMA initialization into two phases:
1. ice_init_rdma() - Allocate resources only (no VSI/QoS access, no plug)
2. ice_rdma_finalize_setup() - Assign VSI/QoS info and plug device

This allows:
- ice_init_rdma() to stay in ice_resume() (mirrors ice_deinit_rdma()
  in ice_suspend())
- VSI assignment deferred until after ice_vsi_rebuild() completes
- QoS info updated after ice_dcb_rebuild() completes
- Device plugged only when control queues, VSI, and DCB are all ready

Fixes: bc69ad74867db ("ice: avoid IRQ collision to fix init failure on ACPI S3 resume")
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice.h
drivers/net/ethernet/intel/ice/ice_idc.c
drivers/net/ethernet/intel/ice/ice_main.c