.dev_configure = mlx5_regex_configure,
.dev_db_import = mlx5_regex_rules_db_import,
.dev_qp_setup = mlx5_regex_qp_setup,
+ .dev_start = mlx5_regex_start,
+ .dev_stop = mlx5_regex_stop,
+ .dev_close = mlx5_regex_close,
};
+int
+mlx5_regex_start(struct rte_regexdev *dev __rte_unused)
+{
+ return 0;
+}
+
+int
+mlx5_regex_stop(struct rte_regexdev *dev __rte_unused)
+{
+ return 0;
+}
+
+int
+mlx5_regex_close(struct rte_regexdev *dev __rte_unused)
+{
+ return 0;
+}
+
static struct ibv_device *
mlx5_regex_get_ib_device_match(struct rte_pci_addr *addr)
{
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);
}
priv->regexdev->dev_ops = &mlx5_regexdev_ops;
priv->regexdev->enqueue = mlx5_regexdev_enqueue;
+ priv->regexdev->dequeue = mlx5_regexdev_dequeue;
priv->regexdev->device = (struct rte_device *)pci_dev;
priv->regexdev->data->dev_private = priv;
priv->regexdev->state = RTE_REGEXDEV_READY;
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)
RTE_INIT(rte_mlx5_regex_init)
{
+ mlx5_common_init();
if (mlx5_glue)
rte_pci_register(&mlx5_regex_driver);
}