regex/mlx5: fix crash on initialization failure
authorParav Pandit <parav@mellanox.com>
Mon, 27 Jul 2020 17:47:10 +0000 (20:47 +0300)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 28 Jul 2020 16:52:11 +0000 (18:52 +0200)
When fail to initialize the device, avoid segmentation fault while
accessing uninitialized priv.

Fixes: cfc672a90b74 ("regex/mlx5: support probing")

Signed-off-by: Parav Pandit <parav@mellanox.com>
drivers/regex/mlx5/mlx5_regex.c

index 1ca5bfe..36ae9f8 100644 (file)
@@ -137,17 +137,17 @@ mlx5_regex_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
        if (ret) {
                DRV_LOG(ERR, "Unable to read HCA capabilities.");
                rte_errno = ENOTSUP;
-               goto error;
+               goto dev_error;
        } else if (!attr.regex || attr.regexp_num_of_engines == 0) {
                DRV_LOG(ERR, "Not enough capabilities to support RegEx, maybe "
                        "old FW/OFED version?");
                rte_errno = ENOTSUP;
-               goto error;
+               goto dev_error;
        }
        if (mlx5_regex_engines_status(ctx, 2)) {
                DRV_LOG(ERR, "RegEx engine error.");
                rte_errno = ENOMEM;
-               goto error;
+               goto dev_error;
        }
        priv = rte_zmalloc("mlx5 regex device private", sizeof(*priv),
                           RTE_CACHE_LINE_SIZE);
@@ -200,6 +200,7 @@ error:
                mlx5_glue->devx_free_uar(priv->uar);
        if (priv->regexdev)
                rte_regexdev_unregister(priv->regexdev);
+dev_error:
        if (ctx)
                mlx5_glue->close_device(ctx);
        if (priv)