Patch "net/mlx5: Set BREAK_FW_WAIT flag first when removing driver" has been added to the 6.1-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    net/mlx5: Set BREAK_FW_WAIT flag first when removing driver

to the 6.1-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     net-mlx5-set-break_fw_wait-flag-first-when-removing-.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit ebe9e232166b7a9a1bcdd008e503d61687592a32
Author: Shay Drory <shayd@xxxxxxxxxx>
Date:   Tue Feb 28 10:36:19 2023 +0200

    net/mlx5: Set BREAK_FW_WAIT flag first when removing driver
    
    [ Upstream commit 031a163f2c476adcb2c01e27a7d323e66174ac11 ]
    
    Currently, BREAK_FW_WAIT flag is set after syncing with fw_reset.
    However, fw_reset can call mlx5_load_one() which is waiting for fw
    init bit and BREAK_FW_WAIT flag is intended to stop. e.g.: the driver
    might wait on a loop it should exit.
    Fix it by setting the flag before syncing with fw_reset.
    
    Fixes: 8324a02c342a ("net/mlx5: Add exit route when waiting for FW")
    Signed-off-by: Shay Drory <shayd@xxxxxxxxxx>
    Reviewed-by: Moshe Shemesh <moshe@xxxxxxxxxx>
    Signed-off-by: Saeed Mahameed <saeedm@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c
index 51c3e86f71a94..59914f66857da 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c
@@ -1752,11 +1752,11 @@ static void remove_one(struct pci_dev *pdev)
 	struct mlx5_core_dev *dev  = pci_get_drvdata(pdev);
 	struct devlink *devlink = priv_to_devlink(dev);
 
+	set_bit(MLX5_BREAK_FW_WAIT, &dev->intf_state);
 	/* mlx5_drain_fw_reset() is using devlink APIs. Hence, we must drain
 	 * fw_reset before unregistering the devlink.
 	 */
 	mlx5_drain_fw_reset(dev);
-	set_bit(MLX5_BREAK_FW_WAIT, &dev->intf_state);
 	devlink_unregister(devlink);
 	mlx5_sriov_disable(pdev);
 	mlx5_crdump_disable(dev);



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux