From ff20ecbf2af7d7fe430526c055e980321a9fa7d9 Mon Sep 17 00:00:00 2001 From: Adrien Mazarguil Date: Wed, 31 Jan 2018 16:33:06 +0100 Subject: [PATCH] net/mlx4: fix drop flow resources leak Resources allocated for drop flow rules are not freed properly. This causes a memory leak and triggers an assertion failure on a reference counter when compiled in debug mode. This issue can be reproduced with testpmd by entering the following commands: flow create 0 ingress pattern eth / end actions drop / end port start all port stop all port start all port stop all quit The reason is additional references are taken when re-enabling existing flow rules, a common occurrence when rehashing configuration. Fixes: d3a7e09234e4 ("net/mlx4: allocate drop flow resources on demand") Cc: stable@dpdk.org Reported-by: Moti Haimovsky Signed-off-by: Adrien Mazarguil --- drivers/net/mlx4/mlx4_flow.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/mlx4/mlx4_flow.c b/drivers/net/mlx4/mlx4_flow.c index 3d40f00ac7..2d55bfe038 100644 --- a/drivers/net/mlx4/mlx4_flow.c +++ b/drivers/net/mlx4/mlx4_flow.c @@ -1030,6 +1030,8 @@ mlx4_flow_toggle(struct priv *priv, flow->drop = missing; } if (flow->drop) { + if (flow->ibv_flow) + return 0; mlx4_drop_get(priv); if (!priv->drop) { err = rte_errno; -- 2.20.1