> -----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]>

Reply via email to