Message ID | 20250220150438.352642-3-martyna.szapar-mudlaw@linux.intel.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [iwl-net] ice: fix fwlog after driver reinit | expand |
Dear Martyna, Thank you for your patch. Am 20.02.25 um 16:04 schrieb Martyna Szapar-Mudlaw: > Fix an issue when firmware logging stops after devlink reload action > driver_reinit or driver reset. Fix it by restoring fw logging when Maybe elaborate, why/how driver reinit or reset disables fwlog. > it was previously registered before these events. I’d add a blank line between paragraphs. > Restoring fw logging in these cases was faultily removed with new > debugfs fw logging implementation. > Failure to init fw logging is not a critical error so it is safely > ignored. How can this be tested? > Fixes: 73671c3162c8 ("ice: enable FW logging") > Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> > Signed-off-by: Martyna Szapar-Mudlaw <martyna.szapar-mudlaw@linux.intel.com> > --- > drivers/net/ethernet/intel/ice/ice_main.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c > index a03e1819e6d5..6d6873003bcb 100644 > --- a/drivers/net/ethernet/intel/ice/ice_main.c > +++ b/drivers/net/ethernet/intel/ice/ice_main.c > @@ -5151,6 +5151,13 @@ int ice_load(struct ice_pf *pf) > > devl_assert_locked(priv_to_devlink(pf)); > > + if (pf->hw.fwlog_cfg.options & ICE_FWLOG_OPTION_IS_REGISTERED) { > + err = ice_fwlog_register(&pf->hw); > + if (err) > + pf->hw.fwlog_cfg.options &= > + ~ICE_FWLOG_OPTION_IS_REGISTERED; Should an error be logged in the failure case? > + } > + > vsi = ice_get_main_vsi(pf); > > /* init channel list */ > @@ -7701,6 +7708,13 @@ static void ice_rebuild(struct ice_pf *pf, enum ice_reset_req reset_type) > goto err_init_ctrlq; > } > > + if (hw->fwlog_cfg.options & ICE_FWLOG_OPTION_IS_REGISTERED) { > + err = ice_fwlog_register(hw); > + if (err) > + hw->fwlog_cfg.options &= > + ~ICE_FWLOG_OPTION_IS_REGISTERED; > + } Ditto. > + > /* if DDP was previously loaded successfully */ > if (!ice_is_safe_mode(pf)) { > /* reload the SW DB of filter tables */ Kind regards, Paul
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c index a03e1819e6d5..6d6873003bcb 100644 --- a/drivers/net/ethernet/intel/ice/ice_main.c +++ b/drivers/net/ethernet/intel/ice/ice_main.c @@ -5151,6 +5151,13 @@ int ice_load(struct ice_pf *pf) devl_assert_locked(priv_to_devlink(pf)); + if (pf->hw.fwlog_cfg.options & ICE_FWLOG_OPTION_IS_REGISTERED) { + err = ice_fwlog_register(&pf->hw); + if (err) + pf->hw.fwlog_cfg.options &= + ~ICE_FWLOG_OPTION_IS_REGISTERED; + } + vsi = ice_get_main_vsi(pf); /* init channel list */ @@ -7701,6 +7708,13 @@ static void ice_rebuild(struct ice_pf *pf, enum ice_reset_req reset_type) goto err_init_ctrlq; } + if (hw->fwlog_cfg.options & ICE_FWLOG_OPTION_IS_REGISTERED) { + err = ice_fwlog_register(hw); + if (err) + hw->fwlog_cfg.options &= + ~ICE_FWLOG_OPTION_IS_REGISTERED; + } + /* if DDP was previously loaded successfully */ if (!ice_is_safe_mode(pf)) { /* reload the SW DB of filter tables */