netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH iwl-net v3 1/2] ice: Fix entering Safe Mode
@ 2024-09-24 10:04 Marcin Szycik
  2024-09-24 10:04 ` [PATCH iwl-net v3 2/2] ice: Fix netif_is_ice() in " Marcin Szycik
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Marcin Szycik @ 2024-09-24 10:04 UTC (permalink / raw)
  To: intel-wired-lan
  Cc: netdev, mateusz.polchlopek, maciej.fijalkowski, bcreeley,
	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.

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)) {
 		/* 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


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

* [PATCH iwl-net v3 2/2] ice: Fix netif_is_ice() in Safe Mode
  2024-09-24 10:04 [PATCH iwl-net v3 1/2] ice: Fix entering Safe Mode Marcin Szycik
@ 2024-09-24 10:04 ` Marcin Szycik
  2024-09-24 18:48   ` Brett Creeley
  2024-10-04 10:37   ` [Intel-wired-lan] " Buvaneswaran, Sujai
  2024-09-24 18:49 ` [PATCH iwl-net v3 1/2] ice: Fix entering " Brett Creeley
  2024-09-28 16:31 ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
  2 siblings, 2 replies; 6+ messages in thread
From: Marcin Szycik @ 2024-09-24 10:04 UTC (permalink / raw)
  To: intel-wired-lan
  Cc: netdev, mateusz.polchlopek, maciej.fijalkowski, bcreeley,
	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 7a84d3c4c305..b1e7727b8677 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] 6+ messages in thread

* Re: [PATCH iwl-net v3 2/2] ice: Fix netif_is_ice() in Safe Mode
  2024-09-24 10:04 ` [PATCH iwl-net v3 2/2] ice: Fix netif_is_ice() in " Marcin Szycik
@ 2024-09-24 18:48   ` Brett Creeley
  2024-10-04 10:37   ` [Intel-wired-lan] " Buvaneswaran, Sujai
  1 sibling, 0 replies; 6+ messages in thread
From: Brett Creeley @ 2024-09-24 18:48 UTC (permalink / raw)
  To: Marcin Szycik, intel-wired-lan
  Cc: netdev, mateusz.polchlopek, maciej.fijalkowski, Przemek Kitszel

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.
> 
> 
> 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 7a84d3c4c305..b1e7727b8677 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);
>   }

LGTM.

Reviewed-by: Brett Creeley <brett.creeley@amd.com>
> 
>   /**
> --
> 2.45.0
> 

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

* Re: [PATCH iwl-net v3 1/2] ice: Fix entering Safe Mode
  2024-09-24 10:04 [PATCH iwl-net v3 1/2] ice: Fix entering Safe Mode Marcin Szycik
  2024-09-24 10:04 ` [PATCH iwl-net v3 2/2] ice: Fix netif_is_ice() in " Marcin Szycik
@ 2024-09-24 18:49 ` Brett Creeley
  2024-09-28 16:31 ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
  2 siblings, 0 replies; 6+ messages in thread
From: Brett Creeley @ 2024-09-24 18:49 UTC (permalink / raw)
  To: Marcin Szycik, intel-wired-lan
  Cc: netdev, mateusz.polchlopek, maciej.fijalkowski, Przemek Kitszel

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
> 

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

* RE: [Intel-wired-lan] [PATCH iwl-net v3 1/2] ice: Fix entering Safe Mode
  2024-09-24 10:04 [PATCH iwl-net v3 1/2] ice: Fix entering Safe Mode Marcin Szycik
  2024-09-24 10:04 ` [PATCH iwl-net v3 2/2] ice: Fix netif_is_ice() in " Marcin Szycik
  2024-09-24 18:49 ` [PATCH iwl-net v3 1/2] ice: Fix entering " Brett Creeley
@ 2024-09-28 16:31 ` Pucha, HimasekharX Reddy
  2 siblings, 0 replies; 6+ messages in thread
From: Pucha, HimasekharX Reddy @ 2024-09-28 16:31 UTC (permalink / raw)
  To: Marcin Szycik, intel-wired-lan@lists.osuosl.org
  Cc: Fijalkowski, Maciej, netdev@vger.kernel.org, Polchlopek, Mateusz,
	Kitszel, Przemyslaw, bcreeley@amd.com

> -----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)

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

* RE: [Intel-wired-lan] [PATCH iwl-net v3 2/2] ice: Fix netif_is_ice() in Safe Mode
  2024-09-24 10:04 ` [PATCH iwl-net v3 2/2] ice: Fix netif_is_ice() in " Marcin Szycik
  2024-09-24 18:48   ` Brett Creeley
@ 2024-10-04 10:37   ` Buvaneswaran, Sujai
  1 sibling, 0 replies; 6+ messages in thread
From: Buvaneswaran, Sujai @ 2024-10-04 10:37 UTC (permalink / raw)
  To: Marcin Szycik, intel-wired-lan@lists.osuosl.org
  Cc: Fijalkowski, Maciej, netdev@vger.kernel.org, Polchlopek, Mateusz,
	Kitszel, Przemyslaw, bcreeley@amd.com

> -----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 2/2] ice: Fix netif_is_ice() in Safe
> Mode
> 
> 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(-)
> 
Tested-by: Sujai Buvaneswaran <sujai.buvaneswaran@intel.com>

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

end of thread, other threads:[~2024-10-04 10:37 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-24 10:04 [PATCH iwl-net v3 1/2] ice: Fix entering Safe Mode Marcin Szycik
2024-09-24 10:04 ` [PATCH iwl-net v3 2/2] ice: Fix netif_is_ice() in " Marcin Szycik
2024-09-24 18:48   ` Brett Creeley
2024-10-04 10:37   ` [Intel-wired-lan] " Buvaneswaran, Sujai
2024-09-24 18:49 ` [PATCH iwl-net v3 1/2] ice: Fix entering " Brett Creeley
2024-09-28 16:31 ` [Intel-wired-lan] " Pucha, HimasekharX Reddy

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).