Re: [PATCH iwl-net 08/10] ice: detect a PF reset that does not complete
From: Ivan Vecera
Date: Sat Oct 03 2026 - 06:00:18 EST
On October 2, 2026 3:07:50 PM GMT+02:00, Petr Oros <poros@xxxxxxxxxx> wrote:
>ice_pf_reset() polls PFGEN_CTRL.PFSWR for up to
>ICE_GLOBAL_CFG_LOCK_TIMEOUT + ICE_PF_RESET_WAIT_COUNT iterations, but
>the timeout check after the loop still compares the counter with
>ICE_PF_RESET_WAIT_COUNT alone. When the reset never completes the loop
>ends with cnt == 5300, the check does not match and the function
>returns success with PFSWR still set. A reset that completes just when
>the counter reaches ICE_PF_RESET_WAIT_COUNT is reported as a failure
>instead.
>
>Check the PFSWR bit read last instead of the loop counter, the same
>way i40e_pf_reset() does after its poll loop.
>
>Fixes: c9a12d6d2091 ("ice: Increase timeout after PFR")
>Assisted-by: LLM
>Signed-off-by: Petr Oros <poros@xxxxxxxxxx>
>---
> drivers/net/ethernet/intel/ice/ice_common.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/drivers/net/ethernet/intel/ice/ice_common.c b/drivers/net/ethernet/intel/ice/ice_common.c
>index 04633103e3e610..0ffd6b5b81239e 100644
>--- a/drivers/net/ethernet/intel/ice/ice_common.c
>+++ b/drivers/net/ethernet/intel/ice/ice_common.c
>@@ -1291,7 +1291,7 @@ static int ice_pf_reset(struct ice_hw *hw)
> mdelay(1);
> }
>
>- if (cnt == ICE_PF_RESET_WAIT_COUNT) {
>+ if (reg & PFGEN_CTRL_PFSWR_M) {
> ice_debug(hw, ICE_DBG_INIT, "PF reset polling failed to complete.\n");
> return -EIO;
> }
Reviewed-by: Ivan Vecera <ivecera@xxxxxxxxxx>