Re: [Intel-wired-lan] [PATCH iwl-net v2] ice: suppress DPLL errors during reset recovery
"Loktionov, Aleksandr" <[email protected]> Thu, 23 Jul 2026 09:22:52 +0000
| Newsgroups | org.osuosl.intel-wired-lan,org.kernel.vger.netdev |
|---|---|
| Message-ID | <IA3PR11MB8986BE99F5DF5FA58BD2F8F4E5C02@IA3PR11MB8986.namprd11.prod.outlook.com> |
> -----Original Message----- > From: Korba, Przemyslaw <[email protected]> > Sent: Wednesday, May 20, 2026 1:50 PM > To: [email protected] > Cc: [email protected]; Nguyen, Anthony L > <[email protected]>; Kitszel, Przemyslaw > <[email protected]>; Loktionov, Aleksandr > <[email protected]>; Kubalewski, Arkadiusz > <[email protected]>; [email protected]; Korba, Przemyslaw > <[email protected]> > Subject: [PATCH iwl-net v2] ice: suppress DPLL errors during reset > recovery > > During reset recovery, the admin queue returns EBUSY which is expected > behavior. However, the DPLL subsystem was logging these as errors and > incrementing the error counter, potentially leading to unnecessary > warnings and even disabling the DPLL periodic worker if the threshold > was reached. > > Suppress error logging and error counter increments when the admin > queue returns EBUSY, as this is expected during reset recovery and not > a real failure condition. > > test case: > - ethtool --reset eth3 irq-shared dma-shared filter-shared offload- > shared mac-shared phy-shared ram-shared > - observe if dmesg EBUSY errors are gone > > Fixes: d7999f5ea64b ("ice: implement dpll interface to control cgu") > Signed-off-by: Przemyslaw Korba <[email protected]> > --- > v2: > add missing EBUSY check in ice_dpll_pps_update_phase_offsets() > v1: > https://lore.kernel.org/intel-wired-lan/20260520105311.5336-1- > [email protected]/T/#u > --- > drivers/net/ethernet/intel/ice/ice_dpll.c | 19 ++++++++++++------- > 1 file changed, 12 insertions(+), 7 deletions(-) > > diff --git a/drivers/net/ethernet/intel/ice/ice_dpll.c > b/drivers/net/ethernet/intel/ice/ice_dpll.c > index 0704e92ab043..815792567a94 100644 > --- a/drivers/net/ethernet/intel/ice/ice_dpll.c > +++ b/drivers/net/ethernet/intel/ice/ice_dpll.c > @@ -784,7 +784,7 @@ ice_dpll_pin_state_update(struct ice_pf *pf, > struct ice_dpll_pin *pin, > ret, > libie_aq_str(pf- > >hw.adminq.sq_last_status), > pin_type_name[pin_type], pin->idx); > - else > + else if (pf->hw.adminq.sq_last_status != LIBIE_AQ_RC_EBUSY) > dev_err_ratelimited(ice_pf_to_dev(pf), > "err:%d %s failed to update %s > pin:%u\n", > ret, > @@ -2821,7 +2821,8 @@ static int > ice_dpll_pps_update_phase_offsets(struct ice_pf *pf, > *phase_offset_pins_updated = 0; > ret = ice_aq_get_cgu_input_pin_measure(&pf->hw, DPLL_TYPE_PPS, > meas, > ARRAY_SIZE(meas)); > - if (ret && pf->hw.adminq.sq_last_status == LIBIE_AQ_RC_EAGAIN) > { > + if (ret && (pf->hw.adminq.sq_last_status == LIBIE_AQ_RC_EAGAIN > || > + pf->hw.adminq.sq_last_status == LIBIE_AQ_RC_EBUSY)) > { > return 0; > } else if (ret) { > dev_err(ice_pf_to_dev(pf), > @@ -2883,10 +2884,12 @@ ice_dpll_update_state(struct ice_pf *pf, > struct ice_dpll *d, bool init) > d->dpll_idx, d->prev_input_idx, d->input_idx, > d->dpll_state, d->prev_dpll_state, d->mode); > if (ret) { > - dev_err(ice_pf_to_dev(pf), > - "update dpll=%d state failed, ret=%d %s\n", > - d->dpll_idx, ret, > - libie_aq_str(pf->hw.adminq.sq_last_status)); > + /* EBUSY is expected during reset recovery, don't log > error */ > + if (pf->hw.adminq.sq_last_status != LIBIE_AQ_RC_EBUSY) > + dev_err(ice_pf_to_dev(pf), > + "update dpll=%d state failed, ret=%d %s\n", > + d->dpll_idx, ret, > + libie_aq_str(pf- > >hw.adminq.sq_last_status)); > return ret; > } > if (init) { > @@ -2955,7 +2958,9 @@ static void ice_dpll_periodic_work(struct > kthread_work *work) > d->periodic_counter % dp->phase_offset_monitor_period == 0) > ret = ice_dpll_pps_update_phase_offsets(pf, > &phase_offset_ntf); > if (ret) { > - d->cgu_state_acq_err_num++; > + /* EBUSY is expected during reset recovery */ > + if (pf->hw.adminq.sq_last_status != LIBIE_AQ_RC_EBUSY) > + d->cgu_state_acq_err_num++; > /* stop rescheduling this worker */ > if (d->cgu_state_acq_err_num > > ICE_CGU_STATE_ACQ_ERR_THRESHOLD) { > > base-commit: 7fd738d8cf34f46a7ec485426e2a5423ade8a63b > prerequisite-patch-id: 45f595ded339d5f7feea2ea7ff196db3c08e3503 > -- > 2.43.0 Reviewed-by: Aleksandr Loktionov <[email protected]>