Commit b972060a authored by Marcin Szycik's avatar Marcin Szycik Committed by Tony Nguyen

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: cc5776fe ("ice: Enable switching default Tx scheduler topology")
Reviewed-by: default avatarPrzemek Kitszel <przemyslaw.kitszel@intel.com>
Signed-off-by: default avatarMarcin Szycik <marcin.szycik@linux.intel.com>
Reviewed-by: default avatarBrett Creeley <brett.creeley@amd.com>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
parent 1fd9e4f2
...@@ -4767,14 +4767,12 @@ int ice_init_dev(struct ice_pf *pf) ...@@ -4767,14 +4767,12 @@ int ice_init_dev(struct ice_pf *pf)
ice_init_feature_support(pf); ice_init_feature_support(pf);
err = ice_init_ddp_config(hw, 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 /* 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 * set in pf->state, which will cause ice_is_safe_mode to return
* true * true
*/ */
if (ice_is_safe_mode(pf)) { if (err || ice_is_safe_mode(pf)) {
/* we already got function/device capabilities but these don't /* we already got function/device capabilities but these don't
* reflect what the driver needs to do in safe mode. Instead of * reflect what the driver needs to do in safe mode. Instead of
* adding conditional logic everywhere to ignore these * adding conditional logic everywhere to ignore these
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment