> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf
> Of Aaron Ma
> Sent: Friday, December 5, 2025 3:38 AM
> To: Nguyen, Anthony L <[email protected]>; Kitszel,
> Przemyslaw <[email protected]>; [email protected];
> [email protected]; [email protected]; [email protected];
> [email protected]; [email protected];
> [email protected]; [email protected]
> Subject: [Intel-wired-lan] [PATCH 2/2] ice: Initialize RDMA after
> rebuild
>
> After wakeup from suspend, IRDMA is initialized with error:
>
> kernel: ice 0000:60:00.0: IRDMA hardware initialization FAILED
> init_state=4 status=-110
> kernel: ice 0000:60:00.1: IRDMA hardware initialization FAILED
> init_state=4 status=-110
> kernel: irdma.gen_2 ice.roce.1: probe with driver irdma.gen_2 failed
> with error -110
> kernel: irdma.gen_2 ice.roce.2: probe with driver irdma.gen_2 failed
> with error -110
>
> IRDMA times out because the initialization before the schedule reset.
> The ice_init_rdma() function already calls ice_plug_aux_dev()
> internally, ensuring proper initialization order.
>
> Fixes: bc69ad74867db ("ice: avoid IRQ collision to fix init failure on
> ACPI S3 resume")
> Signed-off-by: Aaron Ma <[email protected]>
> ---
> drivers/net/ethernet/intel/ice/ice_main.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/ice/ice_main.c
> b/drivers/net/ethernet/intel/ice/ice_main.c
> index 2533876f1a2fd..c6dd04d24ac09 100644
> --- a/drivers/net/ethernet/intel/ice/ice_main.c
> +++ b/drivers/net/ethernet/intel/ice/ice_main.c
> @@ -5677,11 +5677,6 @@ static int ice_resume(struct device *dev)
> if (ret)
> dev_err(dev, "Cannot restore interrupt scheme: %d\n",
> ret);
>
> - ret = ice_init_rdma(pf);
> - if (ret)
> - dev_err(dev, "Reinitialize RDMA during resume failed:
> %d\n",
> - ret);
> -
> clear_bit(ICE_DOWN, pf->state);
> /* Now perform PF reset and rebuild */
> reset_type = ICE_RESET_PFR;
> @@ -7805,7 +7800,12 @@ static void ice_rebuild(struct ice_pf *pf, enum
> ice_reset_req reset_type)
>
> ice_health_clear(pf);
>
> - ice_plug_aux_dev(pf);
> + /* Initialize RDMA after control queues are ready */
> + err = ice_init_rdma(pf);
> + if (err)
> + dev_err(dev, "Reinitialize RDMA after rebuild failed:
> %d\n",
> + err);
> +
> if (ice_is_feature_supported(pf, ICE_F_SRIOV_LAG))
> ice_lag_rebuild(pf);
>
> --
> 2.43.0
Reviewed-by: Aleksandr Loktionov <[email protected]>