]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net/mlx5: Fix L3 tunnel entropy refcount leak
authorLi RongQing <lirongqing@baidu.com>
Fri, 3 Jul 2026 14:14:23 +0000 (22:14 +0800)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 9 Jul 2026 09:21:12 +0000 (11:21 +0200)
mlx5_tun_entropy_refcount_inc() counts both VXLAN and L2-to-L3
tunnel reformat entries as entropy-enabling users. The matching
decrement path only handled VXLAN, leaving L2-to-L3 tunnel entries
counted after release.

Handle MLX5_REFORMAT_TYPE_L2_TO_L3_TUNNEL in
mlx5_tun_entropy_refcount_dec() as well so the enabling entry
refcount remains balanced.

Fixes: f828ca6a2fb6 ("net/mlx5e: Add support for hw encapsulation of MPLS over UDP")
Signed-off-by: Li RongQing <lirongqing@baidu.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Link: https://patch.msgid.link/20260703141423.1723-1-lirongqing@baidu.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/mellanox/mlx5/core/lib/port_tun.c

index 4571c56ec3c9b29683f16cc336d1872fa2cfc108..97f6097d4c705fc5c2c3c38c38acb5c070e7b0d0 100644 (file)
@@ -176,7 +176,8 @@ void mlx5_tun_entropy_refcount_dec(struct mlx5_tun_entropy *tun_entropy,
                                   int reformat_type)
 {
        mutex_lock(&tun_entropy->lock);
-       if (reformat_type == MLX5_REFORMAT_TYPE_L2_TO_VXLAN)
+       if (reformat_type == MLX5_REFORMAT_TYPE_L2_TO_VXLAN ||
+           reformat_type == MLX5_REFORMAT_TYPE_L2_TO_L3_TUNNEL)
                tun_entropy->num_enabling_entries--;
        else if (reformat_type == MLX5_REFORMAT_TYPE_L2_TO_NVGRE &&
                 --tun_entropy->num_disabling_entries == 0)