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.kits...@intel.com>
Signed-off-by: Marcin Szycik <marcin.szy...@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.cree...@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

Reply via email to