From: Adrien Mazarguil Date: Wed, 31 Jan 2018 15:33:06 +0000 (+0100) Subject: net/mlx4: fix drop flow resources leak X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=ff20ecbf2af7d7fe430526c055e980321a9fa7d9;p=dpdk.git 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 --- 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;