Message ID | 20240924100422.8010-3-marcin.szycik@linux.intel.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [iwl-net,v3,1/2] ice: Fix entering Safe Mode | expand |
On 9/24/2024 3:04 AM, Marcin Szycik wrote: > Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding. > > > If DDP package is missing or corrupted, the driver should enter Safe Mode. > Instead, an error is returned and probe fails. > > To fix this, don't exit init if ice_init_ddp_config() returns an error. > > Repro: > * Remove or rename DDP package (/lib/firmware/intel/ice/ddp/ice.pkg) > * Load ice > > Fixes: cc5776fe1832 ("ice: Enable switching default Tx scheduler topology") > Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> > Signed-off-by: Marcin Szycik <marcin.szycik@linux.intel.com> > --- > v3: Change ice_init_ddp_config() type to int, check return (Brett) > v2: Change ice_init_ddp_config() type to void (Maciej) > --- > drivers/net/ethernet/intel/ice/ice_main.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c > index 0f5c9d347806..7a84d3c4c305 100644 > --- a/drivers/net/ethernet/intel/ice/ice_main.c > +++ b/drivers/net/ethernet/intel/ice/ice_main.c > @@ -4749,14 +4749,12 @@ int ice_init_dev(struct ice_pf *pf) > ice_init_feature_support(pf); > > err = ice_init_ddp_config(hw, pf); > - if (err) > - return err; > > /* if ice_init_ddp_config fails, ICE_FLAG_ADV_FEATURES bit won't be > * set in pf->state, which will cause ice_is_safe_mode to return > * true > */ > - if (ice_is_safe_mode(pf)) { > + if (err || ice_is_safe_mode(pf)) { LGTM. Reviewed-by: Brett Creeley <brett.creeley@amd.com> > /* we already got function/device capabilities but these don't > * reflect what the driver needs to do in safe mode. Instead of > * adding conditional logic everywhere to ignore these > -- > 2.45.0 >
> -----Original Message----- > From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of Marcin Szycik > Sent: Tuesday, September 24, 2024 3:34 PM > To: intel-wired-lan@lists.osuosl.org > Cc: Fijalkowski, Maciej <maciej.fijalkowski@intel.com>; netdev@vger.kernel.org; Polchlopek, Mateusz <mateusz.polchlopek@intel.com>; Marcin Szycik <marcin.szycik@linux.intel.com>; Kitszel, Przemyslaw <przemyslaw.kitszel@intel.com>; bcreeley@amd.com > Subject: [Intel-wired-lan] [PATCH iwl-net v3 1/2] ice: Fix entering Safe Mode > > If DDP package is missing or corrupted, the driver should enter Safe Mode. > Instead, an error is returned and probe fails. > > To fix this, don't exit init if ice_init_ddp_config() returns an error. > > Repro: > * Remove or rename DDP package (/lib/firmware/intel/ice/ddp/ice.pkg) > * Load ice > > Fixes: cc5776fe1832 ("ice: Enable switching default Tx scheduler topology") > Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> > Signed-off-by: Marcin Szycik <marcin.szycik@linux.intel.com> > --- > v3: Change ice_init_ddp_config() type to int, check return (Brett) > v2: Change ice_init_ddp_config() type to void (Maciej) > --- > drivers/net/ethernet/intel/ice/ice_main.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c index 0f5c9d347806..7a84d3c4c305 100644 --- a/drivers/net/ethernet/intel/ice/ice_main.c +++ b/drivers/net/ethernet/intel/ice/ice_main.c @@ -4749,14 +4749,12 @@ int ice_init_dev(struct ice_pf *pf) ice_init_feature_support(pf); err = ice_init_ddp_config(hw, pf); - if (err) - return err; /* if ice_init_ddp_config fails, ICE_FLAG_ADV_FEATURES bit won't be * set in pf->state, which will cause ice_is_safe_mode to return * true */ - if (ice_is_safe_mode(pf)) { + if (err || ice_is_safe_mode(pf)) { /* we already got function/device capabilities but these don't * reflect what the driver needs to do in safe mode. Instead of * adding conditional logic everywhere to ignore these