Patch "net/mlx5: Only cancel recovery work when cleaning up device" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
net/mlx5: Only cancel recovery work when cleaning up device
to the 4.9-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-only-cancel-recovery-work-when-cleaning-up-device.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
5e44fca5047054f1762813751626b5245e0da022Mon Sep 17 00:00:00 2001
From: Daniel Jurgens <[email protected]>
Date: Tue, 10 Jan 2017 22:33:39 +0200
Subject: net/mlx5: Only cancel recovery work when cleaning up device
From: Daniel Jurgens <[email protected]>
commit 5e44fca5047054f1762813751626b5245e0da022 upstream.
Do not attempt to drain the health workqueue when unloading the device in the recovery flow, this can cause a deadlock when the recovery work tries to cancel itself with sync.
Because the work is no longer unconditionally canceled when unloading, it must be explicitly canceled in the AER flow.
--- drivers/net/ethernet/mellanox/mlx5/core/main.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
drivers/net/ethernet/mellanox/mlx5/core/main.c +4 -2
@@ -1158,7 +1158,8 @@ static int mlx5_unload_one(struct mlx5_c {int err =0 ; -mlx5_drain_health_wq (dev); +if (cleanup) +mlx5_drain_health_wq (dev);mutex_lock (&dev->intf_state_mutex);if (test_bit (MLX5_INTERFACE_STATE_DOWN , &dev->intf_state)) {
@@ -1320,9 +1321,10 @@ static pci_ers_result_t mlx5_pci_err_detmlx5_enter_error_state (dev);mlx5_unload_one (dev, priv, false); -/* In case of kernel call save the pci state */ +/* In case of kernel call save the pci state and drain the health wq */ if (state) {pci_save_state (pdev); +mlx5_drain_health_wq (dev);mlx5_pci_disable_device (dev); }
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/net-mlx5-only-cancel-recovery-work-when-cleaning-up-device.patch