net/mlx5: fix memory leak on Direct Verbs error
authorDekel Peled <dekelp@mellanox.com>
Mon, 29 Oct 2018 16:09:10 +0000 (18:09 +0200)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 5 Nov 2018 14:01:25 +0000 (15:01 +0100)
Add freeing of allocated memory before exiting on mlx5dv error.

Fixes: fc2c498ccb94 ("net/mlx5: add Direct Verbs translate items")

Signed-off-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
drivers/net/mlx5/mlx5_flow_dv.c

index 8f729f4..0e1f715 100644 (file)
@@ -1203,10 +1203,12 @@ flow_dv_matcher_register(struct rte_eth_dev *dev,
                dv_attr.flags |= IBV_FLOW_ATTR_FLAGS_EGRESS;
        cache_matcher->matcher_object =
                mlx5_glue->dv_create_flow_matcher(priv->ctx, &dv_attr);
-       if (!cache_matcher->matcher_object)
+       if (!cache_matcher->matcher_object) {
+               rte_free(cache_matcher);
                return rte_flow_error_set(error, ENOMEM,
                                          RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
                                          NULL, "cannot create matcher");
+       }
        rte_atomic32_inc(&cache_matcher->refcnt);
        LIST_INSERT_HEAD(&priv->matchers, cache_matcher, next);
        dev_flow->dv.matcher = cache_matcher;