]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ice: add NULL check in eswitch lag check
authorDave Ertman <david.m.ertman@intel.com>
Thu, 22 May 2025 17:16:57 +0000 (13:16 -0400)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Tue, 15 Jul 2025 20:01:15 +0000 (13:01 -0700)
The function ice_lag_is_switchdev_running() is being called from outside of
the LAG event handler code.  This results in the lag->upper_netdev being
NULL sometimes.  To avoid a NULL-pointer dereference, there needs to be a
check before it is dereferenced.

Fixes: 776fe19953b0 ("ice: block default rule setting on LAG interface")
Signed-off-by: Dave Ertman <david.m.ertman@intel.com>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Tested-by: Sujai Buvaneswaran <sujai.buvaneswaran@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_lag.c

index 2410aee59fb2d598cc06d04929d4c42aee253017..d132eb4775513c78c7b28fa5488b34967fb8c67c 100644 (file)
@@ -2226,7 +2226,8 @@ bool ice_lag_is_switchdev_running(struct ice_pf *pf)
        struct ice_lag *lag = pf->lag;
        struct net_device *tmp_nd;
 
-       if (!ice_is_feature_supported(pf, ICE_F_SRIOV_LAG) || !lag)
+       if (!ice_is_feature_supported(pf, ICE_F_SRIOV_LAG) ||
+           !lag || !lag->upper_netdev)
                return false;
 
        rcu_read_lock();