Patch "net/mlx5e: Fix CT entry update leaks of modify header context" has been added to the 6.6-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/mlx5e: Fix CT entry update leaks of modify header context

to the 6.6-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-mlx5e-fix-ct-entry-update-leaks-of-modify-header.patch
and it can be found in the queue-6.6 subdirectory.

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



commit bf9c2b7ed7d21bc387b92e02c579590ae1c0cf1c
Author: Chris Mi <cmi@xxxxxxxxxx>
Date:   Tue Jul 30 09:16:36 2024 +0300

    net/mlx5e: Fix CT entry update leaks of modify header context
    
    [ Upstream commit 025f2b85a5e5a46df14ecf162c3c80a957a36d0b ]
    
    The cited commit allocates a new modify header to replace the old
    one when updating CT entry. But if failed to allocate a new one, eg.
    exceed the max number firmware can support, modify header will be
    an error pointer that will trigger a panic when deallocating it. And
    the old modify header point is copied to old attr. When the old
    attr is freed, the old modify header is lost.
    
    Fix it by restoring the old attr to attr when failed to allocate a
    new modify header context. So when the CT entry is freed, the right
    modify header context will be freed. And the panic of accessing
    error pointer is also fixed.
    
    Fixes: 94ceffb48eac ("net/mlx5e: Implement CT entry update")
    Signed-off-by: Chris Mi <cmi@xxxxxxxxxx>
    Signed-off-by: Tariq Toukan <tariqt@xxxxxxxxxx>
    Reviewed-by: Wojciech Drewek <wojciech.drewek@xxxxxxxxx>
    Link: https://patch.msgid.link/20240730061638.1831002-8-tariqt@xxxxxxxxxx
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c
index fadfa8b50bebe..8c4e3ecef5901 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c
@@ -920,6 +920,7 @@ mlx5_tc_ct_entry_replace_rule(struct mlx5_tc_ct_priv *ct_priv,
 	mlx5_tc_ct_entry_destroy_mod_hdr(ct_priv, zone_rule->attr, mh);
 	mlx5_put_label_mapping(ct_priv, attr->ct_attr.ct_labels_id);
 err_mod_hdr:
+	*attr = *old_attr;
 	kfree(old_attr);
 err_attr:
 	kvfree(spec);




[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