* [Intel-wired-lan] [PATCH iwl-net v3 2/2] ice: Fix netif_is_ice() in Safe Mode
2024-09-24 10:04 [Intel-wired-lan] [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 ` Buvaneswaran, Sujai
2024-09-24 18:49 ` [Intel-wired-lan] [PATCH iwl-net v3 1/2] ice: Fix entering " Brett Creeley
2024-09-28 16:31 ` 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: maciej.fijalkowski, netdev, mateusz.polchlopek, Marcin Szycik,
Przemek Kitszel, bcreeley
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: [Intel-wired-lan] [PATCH iwl-net v3 2/2] ice: Fix netif_is_ice() in Safe Mode
2024-09-24 10:04 ` [Intel-wired-lan] [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: Brett Creeley @ 2024-09-24 18:48 UTC (permalink / raw)
To: Marcin Szycik, intel-wired-lan
Cc: netdev, maciej.fijalkowski, Przemek Kitszel, mateusz.polchlopek
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: [Intel-wired-lan] [PATCH iwl-net v3 2/2] ice: Fix netif_is_ice() in Safe Mode
2024-09-24 10:04 ` [Intel-wired-lan] [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: netdev@vger.kernel.org, Fijalkowski, Maciej, Kitszel, Przemyslaw,
bcreeley@amd.com, Polchlopek, Mateusz
> -----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
* Re: [Intel-wired-lan] [PATCH iwl-net v3 1/2] ice: Fix entering Safe Mode
2024-09-24 10:04 [Intel-wired-lan] [PATCH iwl-net v3 1/2] ice: Fix entering Safe Mode Marcin Szycik
2024-09-24 10:04 ` [Intel-wired-lan] [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 ` 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, maciej.fijalkowski, Przemek Kitszel, mateusz.polchlopek
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 [Intel-wired-lan] [PATCH iwl-net v3 1/2] ice: Fix entering Safe Mode Marcin Szycik
2024-09-24 10:04 ` [Intel-wired-lan] [PATCH iwl-net v3 2/2] ice: Fix netif_is_ice() in " Marcin Szycik
2024-09-24 18:49 ` [Intel-wired-lan] [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: netdev@vger.kernel.org, Fijalkowski, Maciej, Kitszel, Przemyslaw,
bcreeley@amd.com, Polchlopek, Mateusz
> -----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