Patch "net/mlx5: Stop waiting for PCI up if teardown was triggered" 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: Stop waiting for PCI up if teardown was triggered

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-stop-waiting-for-pci-up-if-teardown-was-tri.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 048dc9224dee60beeecdaa549fd789c911285dc1
Author: Moshe Shemesh <moshe@xxxxxxxxxxxx>
Date:   Mon Mar 13 22:42:21 2023 -0700

    net/mlx5: Stop waiting for PCI up if teardown was triggered
    
    [ Upstream commit 8ff38e730c3f5ee717f25365ef8aa4739562d567 ]
    
    If driver teardown is called while PCI is turned off, there is a race
    between health recovery and teardown. If health recovery already started
    it will wait 60 sec trying to see if PCI gets back and it can recover,
    but actually there is no need to wait anymore once teardown was called.
    
    Use the MLX5_BREAK_FW_WAIT flag which is set on driver teardown to break
    waiting for PCI up.
    
    Signed-off-by: Moshe Shemesh <moshe@xxxxxxxxxxxx>
    Signed-off-by: Saeed Mahameed <saeedm@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20230314054234.267365-3-saeed@xxxxxxxxxx
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Stable-dep-of: 33afbfcc105a ("net/mlx5: Stop waiting for PCI if pci channel is offline")
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/health.c b/drivers/net/ethernet/mellanox/mlx5/core/health.c
index e42e4ac231c64..e9462de771fd3 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/health.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/health.c
@@ -325,6 +325,10 @@ int mlx5_health_wait_pci_up(struct mlx5_core_dev *dev)
 	while (sensor_pci_not_working(dev)) {
 		if (time_after(jiffies, end))
 			return -ETIMEDOUT;
+		if (test_bit(MLX5_BREAK_FW_WAIT, &dev->intf_state)) {
+			mlx5_core_warn(dev, "device is being removed, stop waiting for PCI\n");
+			return -ENODEV;
+		}
 		msleep(100);
 	}
 	return 0;




[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