Patch "net/mlx5: Lag, fix failure to cancel delayed bond work" has been added to the 6.0-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: Lag, fix failure to cancel delayed bond work

to the 6.0-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-lag-fix-failure-to-cancel-delayed-bond-work.patch
and it can be found in the queue-6.0 subdirectory.

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



commit b6bf04f5f19e2b28026132587cf7f2bac627c352
Author: Eli Cohen <elic@xxxxxxxxxx>
Date:   Thu Dec 15 14:28:34 2022 +0200

    net/mlx5: Lag, fix failure to cancel delayed bond work
    
    [ Upstream commit 4d1c1379d71777ddeda3e54f8fc26e9ecbfd1009 ]
    
    Commit 0d4e8ed139d8 ("net/mlx5: Lag, avoid lockdep warnings")
    accidentally removed a call to cancel delayed bond work thus it may
    cause queued delay to expire and fall on an already destroyed work
    queue.
    
    Fix by restoring the call cancel_delayed_work_sync() before
    destroying the workqueue.
    
    This prevents call trace such as this:
    
    [  329.230417] BUG: kernel NULL pointer dereference, address: 0000000000000000
     [  329.231444] #PF: supervisor write access in kernel mode
     [  329.232233] #PF: error_code(0x0002) - not-present page
     [  329.233007] PGD 0 P4D 0
     [  329.233476] Oops: 0002 [#1] SMP
     [  329.234012] CPU: 5 PID: 145 Comm: kworker/u20:4 Tainted: G OE      6.0.0-rc5_mlnx #1
     [  329.235282] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014
     [  329.236868] Workqueue: mlx5_cmd_0000:08:00.1 cmd_work_handler [mlx5_core]
     [  329.237886] RIP: 0010:_raw_spin_lock+0xc/0x20
     [  329.238585] Code: f0 0f b1 17 75 02 f3 c3 89 c6 e9 6f 3c 5f ff 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 0f 1f 44 00 00 31 c0 ba 01 00 00 00 <f0> 0f b1 17 75 02 f3 c3 89 c6 e9 45 3c 5f ff 0f 1f 44 00 00 0f 1f
     [  329.241156] RSP: 0018:ffffc900001b0e98 EFLAGS: 00010046
     [  329.241940] RAX: 0000000000000000 RBX: ffffffff82374ae0 RCX: 0000000000000000
     [  329.242954] RDX: 0000000000000001 RSI: 0000000000000014 RDI: 0000000000000000
     [  329.243974] RBP: ffff888106ccf000 R08: ffff8881004000c8 R09: ffff888100400000
     [  329.244990] R10: 0000000000000000 R11: ffffffff826669f8 R12: 0000000000002000
     [  329.246009] R13: 0000000000000005 R14: ffff888100aa7ce0 R15: ffff88852ca80000
     [  329.247030] FS:  0000000000000000(0000) GS:ffff88852ca80000(0000) knlGS:0000000000000000
     [  329.248260] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
     [  329.249111] CR2: 0000000000000000 CR3: 000000016d675001 CR4: 0000000000770ee0
     [  329.250133] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
     [  329.251152] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
     [  329.252176] PKRU: 55555554
    
    Fixes: 0d4e8ed139d8 ("net/mlx5: Lag, avoid lockdep warnings")
    Signed-off-by: Eli Cohen <elic@xxxxxxxxxx>
    Reviewed-by: Maor Dickman <maord@xxxxxxxxxx>
    Signed-off-by: Saeed Mahameed <saeedm@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
index bbe810f3b373..c142011d2097 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
@@ -201,6 +201,7 @@ static void mlx5_ldev_free(struct kref *ref)
 	if (ldev->nb.notifier_call)
 		unregister_netdevice_notifier_net(&init_net, &ldev->nb);
 	mlx5_lag_mp_cleanup(ldev);
+	cancel_delayed_work_sync(&ldev->bond_work);
 	destroy_workqueue(ldev->wq);
 	mlx5_lag_mpesw_cleanup(ldev);
 	mutex_destroy(&ldev->lock);



[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