queue_conf need to have mempool details before pair setup. Fixes: 261bbff75e34 ("examples: use separate crypto session mempools") Cc: sta...@dpdk.org
Signed-off-by: Jun Yang <jun.y...@nxp.com> Signed-off-by: Hemant Agrawal <hemant.agra...@nxp.com> --- examples/ip_pipeline/cryptodev.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/examples/ip_pipeline/cryptodev.c b/examples/ip_pipeline/cryptodev.c index b0d9f3d217..ae65a90859 100644 --- a/examples/ip_pipeline/cryptodev.c +++ b/examples/ip_pipeline/cryptodev.c @@ -99,17 +99,6 @@ cryptodev_create(const char *name, struct cryptodev_params *params) if (status < 0) return NULL; - queue_conf.nb_descriptors = params->queue_size; - for (i = 0; i < params->n_queues; i++) { - status = rte_cryptodev_queue_pair_setup(dev_id, i, - &queue_conf, socket_id); - if (status < 0) - return NULL; - } - - if (rte_cryptodev_start(dev_id) < 0) - return NULL; - cryptodev = calloc(1, sizeof(struct cryptodev)); if (cryptodev == NULL) { rte_cryptodev_stop(dev_id); @@ -149,6 +138,19 @@ cryptodev_create(const char *name, struct cryptodev_params *params) TAILQ_INSERT_TAIL(&cryptodev_list, cryptodev, node); + queue_conf.nb_descriptors = params->queue_size; + queue_conf.mp_session = cryptodev->mp_create; + queue_conf.mp_session_private = cryptodev->mp_init; + for (i = 0; i < params->n_queues; i++) { + status = rte_cryptodev_queue_pair_setup(dev_id, i, + &queue_conf, socket_id); + if (status < 0) + goto error_exit; + } + + if (rte_cryptodev_start(dev_id) < 0) + goto error_exit; + return cryptodev; error_exit: -- 2.17.1