ice: Shut down VSI with "link-down-on-close" enabled
authorNgai-Mint Kwan <ngai-mint.kwan@intel.com>
Fri, 15 Dec 2023 11:01:57 +0000 (12:01 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 10 Jan 2024 16:16:48 +0000 (17:16 +0100)
[ Upstream commit 6d05ff55ef4f4954d28551236239f297bd52ea48 ]

Disabling netdev with ethtool private flag "link-down-on-close" enabled
can cause NULL pointer dereference bug. Shut down VSI regardless of
"link-down-on-close" state.

Fixes: 8ac7132704f3 ("ice: Fix interface being down after reset with link-down-on-close flag on")
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Signed-off-by: Ngai-Mint Kwan <ngai-mint.kwan@intel.com>
Signed-off-by: Wojciech Drewek <wojciech.drewek@intel.com>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/intel/ice/ice_main.c

index 66f4c54..d8d2aa4 100644 (file)
@@ -9179,6 +9179,8 @@ int ice_stop(struct net_device *netdev)
                        else
                                netdev_err(vsi->netdev, "Failed to set physical link down, VSI %d error %d\n",
                                           vsi->vsi_num, link_err);
+
+                       ice_vsi_close(vsi);
                        return -EIO;
                }
        }