]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net/mlx5: HWS, fix matcher leak on resize target setup failure
authorDawei Feng <dawei.feng@seu.edu.cn>
Mon, 29 Jun 2026 06:40:49 +0000 (14:40 +0800)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 2 Jul 2026 07:27:26 +0000 (09:27 +0200)
hws_bwc_matcher_move() allocates a replacement matcher before setting it
as the resize target. If mlx5hws_matcher_resize_set_target() fails, the
replacement matcher is not attached anywhere and is leaked.

Fix the leak by destroying the replacement matcher before returning from
the resize-target failure path.

The bug was first flagged by an experimental analysis tool we are
developing for kernel memory-management bugs while analyzing
v6.13-rc1. The tool is still under development and is not yet publicly
available. Manual inspection confirms that the bug is still
present in v7.1.1.

An x86_64 allyesconfig build showed no new warnings. As we do not have a
mlx5 HWS-capable device to test with, no runtime testing was able to be
performed.

Fixes: 2111bb970c78 ("net/mlx5: HWS, added backward-compatible API handling")
Cc: stable@vger.kernel.org
Signed-off-by: Dawei Feng <dawei.feng@seu.edu.cn>
Reviewed-by: Yevgeny Kliteynik <kliteyn@nvidia.com>
Acked-by: Tariq Toukan <tariqt@nvidia.com>
Link: https://patch.msgid.link/20260629064049.3852759-1-dawei.feng@seu.edu.cn
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/bwc.c

index eae02bc74221881b0c8689d18d730d2fdec44e48..3bcf412a08c4c15faa8a622864206b1a74de25a0 100644 (file)
@@ -205,6 +205,7 @@ static int hws_bwc_matcher_move(struct mlx5hws_bwc_matcher *bwc_matcher)
        ret = mlx5hws_matcher_resize_set_target(old_matcher, new_matcher);
        if (ret) {
                mlx5hws_err(ctx, "Rehash error: failed setting resize target\n");
+               mlx5hws_matcher_destroy(new_matcher);
                return ret;
        }