Patch "net/mlx5: Fix steering rules cleanup" has been added to the 5.15-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: Fix steering rules cleanup

to the 5.15-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-fix-steering-rules-cleanup.patch
and it can be found in the queue-5.15 subdirectory.

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



commit 19ba55da59c8eee2ec4c6900fd1271e0d0b5c8f3
Author: Lama Kayal <lkayal@xxxxxxxxxx>
Date:   Tue Jan 31 14:07:03 2023 +0200

    net/mlx5: Fix steering rules cleanup
    
    [ Upstream commit 922f56e9a795d6f3dd72d3428ebdd7ee040fa855 ]
    
    vport's mc, uc and multicast rules are not deleted in teardown path when
    EEH happens. Since the vport's promisc settings(uc, mc and all) in
    firmware are reset after EEH, mlx5 driver will try to delete the above
    rules in the initialization path. This cause kernel crash because these
    software rules are no longer valid.
    
    Fix by nullifying these rules right after delete to avoid accessing any dangling
    pointers.
    
    Call Trace:
    __list_del_entry_valid+0xcc/0x100 (unreliable)
    tree_put_node+0xf4/0x1b0 [mlx5_core]
    tree_remove_node+0x30/0x70 [mlx5_core]
    mlx5_del_flow_rules+0x14c/0x1f0 [mlx5_core]
    esw_apply_vport_rx_mode+0x10c/0x200 [mlx5_core]
    esw_update_vport_rx_mode+0xb4/0x180 [mlx5_core]
    esw_vport_change_handle_locked+0x1ec/0x230 [mlx5_core]
    esw_enable_vport+0x130/0x260 [mlx5_core]
    mlx5_eswitch_enable_sriov+0x2a0/0x2f0 [mlx5_core]
    mlx5_device_enable_sriov+0x74/0x440 [mlx5_core]
    mlx5_load_one+0x114c/0x1550 [mlx5_core]
    mlx5_pci_resume+0x68/0xf0 [mlx5_core]
    eeh_report_resume+0x1a4/0x230
    eeh_pe_dev_traverse+0x98/0x170
    eeh_handle_normal_event+0x3e4/0x640
    eeh_handle_event+0x4c/0x370
    eeh_event_handler+0x14c/0x210
    kthread+0x168/0x1b0
    ret_from_kernel_thread+0x5c/0x84
    
    Fixes: a35f71f27a61 ("net/mlx5: E-Switch, Implement promiscuous rx modes vf request handling")
    Signed-off-by: Huy Nguyen <huyn@xxxxxxxxxxxx>
    Signed-off-by: Lama Kayal <lkayal@xxxxxxxxxx>
    Reviewed-by: Tariq Toukan <tariqt@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/eswitch.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
index 2b9278002354c..7315bf447e061 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
@@ -918,6 +918,7 @@ void mlx5_esw_vport_disable(struct mlx5_eswitch *esw, u16 vport_num)
 	 */
 	esw_vport_change_handle_locked(vport);
 	vport->enabled_events = 0;
+	esw_apply_vport_rx_mode(esw, vport, false, false);
 	esw_vport_cleanup(esw, vport);
 	esw->enabled_vports--;
 



[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