diff mbox series

[iwl-net,v3,2/2] ice: Fix netif_is_ice() in Safe Mode

Message ID 20240924100422.8010-4-marcin.szycik@linux.intel.com
State Accepted
Delegated to: Anthony Nguyen
Headers show
Series [iwl-net,v3,1/2] ice: Fix entering Safe Mode | expand

Commit Message

Marcin Szycik Sept. 24, 2024, 10:04 a.m. UTC
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(-)

Comments

Brett Creeley Sept. 24, 2024, 6:48 p.m. UTC | #1
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
>
Buvaneswaran, Sujai Oct. 4, 2024, 10:37 a.m. UTC | #2
> -----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>
diff mbox series

Patch

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);
 }
 
 /**