netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH iwl-net 1/2] ice: Fix entering Safe Mode
@ 2024-09-20 11:55 Marcin Szycik
  2024-09-20 11:55 ` [PATCH iwl-net 2/2] ice: Fix netif_is_ice() in " Marcin Szycik
  2024-09-20 12:03 ` [PATCH iwl-net 1/2] ice: Fix entering " Maciej Fijalkowski
  0 siblings, 2 replies; 5+ messages in thread
From: Marcin Szycik @ 2024-09-20 11:55 UTC (permalink / raw)
  To: intel-wired-lan
  Cc: netdev, mateusz.polchlopek, Marcin Szycik, Przemek Kitszel

If DDP package is missing or corrupted, the driver should enter Safe Mode.
Instead, an error is returned and probe fails.

Don't check return value of ice_init_ddp_config() to fix this.

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>
---
 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..7b6725d652e1 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -4748,9 +4748,7 @@ int ice_init_dev(struct ice_pf *pf)
 
 	ice_init_feature_support(pf);
 
-	err = ice_init_ddp_config(hw, pf);
-	if (err)
-		return err;
+	ice_init_ddp_config(hw, pf);
 
 	/* 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
-- 
2.45.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH iwl-net 2/2] ice: Fix netif_is_ice() in Safe Mode
  2024-09-20 11:55 [PATCH iwl-net 1/2] ice: Fix entering Safe Mode Marcin Szycik
@ 2024-09-20 11:55 ` Marcin Szycik
  2024-09-20 12:03 ` [PATCH iwl-net 1/2] ice: Fix entering " Maciej Fijalkowski
  1 sibling, 0 replies; 5+ messages in thread
From: Marcin Szycik @ 2024-09-20 11:55 UTC (permalink / raw)
  To: intel-wired-lan
  Cc: netdev, mateusz.polchlopek, Marcin Szycik, Przemek Kitszel

netif_is_ice() works by checking the pointer to netdev ops. However, it
only checks for the default ice_netdev_ops, not ice_netdev_safe_mode_ops,
so in Safe Mode it always returns false, which is unintuitive. While it
doesn't look like netif_is_ice() is currently being called anywhere in Safe
Mode, this could change and potentially lead to unexpected behaviour.

Fixes: df006dd4b1dc ("ice: Add initial support framework for LAG")
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Signed-off-by: Marcin Szycik <marcin.szycik@linux.intel.com>
---
 drivers/net/ethernet/intel/ice/ice_main.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c
index 7b6725d652e1..b58ef3e69f9c 100644
--- a/drivers/net/ethernet/intel/ice/ice_main.c
+++ b/drivers/net/ethernet/intel/ice/ice_main.c
@@ -87,7 +87,8 @@ ice_indr_setup_tc_cb(struct net_device *netdev, struct Qdisc *sch,
 
 bool netif_is_ice(const struct net_device *dev)
 {
-	return dev && (dev->netdev_ops == &ice_netdev_ops);
+	return dev && (dev->netdev_ops == &ice_netdev_ops ||
+		       dev->netdev_ops == &ice_netdev_safe_mode_ops);
 }
 
 /**
-- 
2.45.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH iwl-net 1/2] ice: Fix entering Safe Mode
  2024-09-20 11:55 [PATCH iwl-net 1/2] ice: Fix entering Safe Mode Marcin Szycik
  2024-09-20 11:55 ` [PATCH iwl-net 2/2] ice: Fix netif_is_ice() in " Marcin Szycik
@ 2024-09-20 12:03 ` Maciej Fijalkowski
  2024-09-20 13:24   ` [Intel-wired-lan] " Marcin Szycik
  2024-09-20 17:07   ` Brett Creeley
  1 sibling, 2 replies; 5+ messages in thread
From: Maciej Fijalkowski @ 2024-09-20 12:03 UTC (permalink / raw)
  To: Marcin Szycik
  Cc: intel-wired-lan, netdev, mateusz.polchlopek, Przemek Kitszel

On Fri, Sep 20, 2024 at 01:55:09PM +0200, Marcin Szycik wrote:
> If DDP package is missing or corrupted, the driver should enter Safe Mode.
> Instead, an error is returned and probe fails.
> 
> Don't check return value of ice_init_ddp_config() to fix this.

no one else checks the retval after your fix so adjust it to return void.

> 
> 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>
> ---
>  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..7b6725d652e1 100644
> --- a/drivers/net/ethernet/intel/ice/ice_main.c
> +++ b/drivers/net/ethernet/intel/ice/ice_main.c
> @@ -4748,9 +4748,7 @@ int ice_init_dev(struct ice_pf *pf)
>  
>  	ice_init_feature_support(pf);
>  
> -	err = ice_init_ddp_config(hw, pf);
> -	if (err)
> -		return err;
> +	ice_init_ddp_config(hw, pf);
>  
>  	/* 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
> -- 
> 2.45.0
> 
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Intel-wired-lan] [PATCH iwl-net 1/2] ice: Fix entering Safe Mode
  2024-09-20 12:03 ` [PATCH iwl-net 1/2] ice: Fix entering " Maciej Fijalkowski
@ 2024-09-20 13:24   ` Marcin Szycik
  2024-09-20 17:07   ` Brett Creeley
  1 sibling, 0 replies; 5+ messages in thread
From: Marcin Szycik @ 2024-09-20 13:24 UTC (permalink / raw)
  To: Maciej Fijalkowski
  Cc: netdev, intel-wired-lan, Przemek Kitszel, mateusz.polchlopek



On 20.09.2024 14:03, Maciej Fijalkowski wrote:
> On Fri, Sep 20, 2024 at 01:55:09PM +0200, Marcin Szycik wrote:
>> If DDP package is missing or corrupted, the driver should enter Safe Mode.
>> Instead, an error is returned and probe fails.
>>
>> Don't check return value of ice_init_ddp_config() to fix this.
> 
> no one else checks the retval after your fix so adjust it to return void.

Thanks, will fix in v2.

>>
>> 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>
>> ---
>>  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..7b6725d652e1 100644
>> --- a/drivers/net/ethernet/intel/ice/ice_main.c
>> +++ b/drivers/net/ethernet/intel/ice/ice_main.c
>> @@ -4748,9 +4748,7 @@ int ice_init_dev(struct ice_pf *pf)
>>  
>>  	ice_init_feature_support(pf);
>>  
>> -	err = ice_init_ddp_config(hw, pf);
>> -	if (err)
>> -		return err;
>> +	ice_init_ddp_config(hw, pf);
>>  
>>  	/* 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
>> -- 
>> 2.45.0
>>
>>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH iwl-net 1/2] ice: Fix entering Safe Mode
  2024-09-20 12:03 ` [PATCH iwl-net 1/2] ice: Fix entering " Maciej Fijalkowski
  2024-09-20 13:24   ` [Intel-wired-lan] " Marcin Szycik
@ 2024-09-20 17:07   ` Brett Creeley
  1 sibling, 0 replies; 5+ messages in thread
From: Brett Creeley @ 2024-09-20 17:07 UTC (permalink / raw)
  To: Maciej Fijalkowski, Marcin Szycik
  Cc: intel-wired-lan, netdev, mateusz.polchlopek, Przemek Kitszel



On 9/20/2024 5:03 AM, Maciej Fijalkowski wrote:
> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
> 
> 
> On Fri, Sep 20, 2024 at 01:55:09PM +0200, Marcin Szycik wrote:
>> If DDP package is missing or corrupted, the driver should enter Safe Mode.
>> Instead, an error is returned and probe fails.
>>
>> Don't check return value of ice_init_ddp_config() to fix this.
> 
> no one else checks the retval after your fix so adjust it to return void.
> 
>>
>> 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>
>> ---
>>   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..7b6725d652e1 100644
>> --- a/drivers/net/ethernet/intel/ice/ice_main.c
>> +++ b/drivers/net/ethernet/intel/ice/ice_main.c
>> @@ -4748,9 +4748,7 @@ int ice_init_dev(struct ice_pf *pf)
>>
>>        ice_init_feature_support(pf);
>>
>> -     err = ice_init_ddp_config(hw, pf);
>> -     if (err)
>> -             return err;
>> +     ice_init_ddp_config(hw, pf);

As an alternative solution you could potentially do the following, which 
would make the flow more readable:

err = ice_init_ddp_config(hw, pf);
if (err || ice_is_safe_mode(pf))
	ice_set_safe_mode_caps(hw);

Also, should there be some sort of messaging if the device goes into 
safe mode? I wonder if a dev_dbg() would be better than nothing.

>>
>>        /* 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 >> --
>> 2.45.0
>>
>>
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-09-20 17:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-20 11:55 [PATCH iwl-net 1/2] ice: Fix entering Safe Mode Marcin Szycik
2024-09-20 11:55 ` [PATCH iwl-net 2/2] ice: Fix netif_is_ice() in " Marcin Szycik
2024-09-20 12:03 ` [PATCH iwl-net 1/2] ice: Fix entering " Maciej Fijalkowski
2024-09-20 13:24   ` [Intel-wired-lan] " Marcin Szycik
2024-09-20 17:07   ` Brett Creeley

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).