The worker PMDs were using direct device start/stop
functions rather than rte_cryptodev_start(),
so rte_crypto_fp_ops never get set. This patch calls
the rte_cryptodev_start and stop APIs which start and
stop devices properly and fp_ops get set.
Reported-by: Ciara Power <ciara.power@intel.com>
Signed-off-by: Akhil Goyal <gakhil@marvell.com>
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
/* start all workers */
for (i = 0; i < sched_ctx->nb_workers; i++) {
uint8_t worker_dev_id = sched_ctx->workers[i].dev_id;
/* start all workers */
for (i = 0; i < sched_ctx->nb_workers; i++) {
uint8_t worker_dev_id = sched_ctx->workers[i].dev_id;
- struct rte_cryptodev *worker_dev =
- rte_cryptodev_pmd_get_dev(worker_dev_id);
-
- ret = (*worker_dev->dev_ops->dev_start)(worker_dev);
+ ret = rte_cryptodev_start(worker_dev_id);
if (ret < 0) {
CR_SCHED_LOG(ERR, "Failed to start worker dev %u",
worker_dev_id);
if (ret < 0) {
CR_SCHED_LOG(ERR, "Failed to start worker dev %u",
worker_dev_id);
/* stop all workers first */
for (i = 0; i < sched_ctx->nb_workers; i++) {
uint8_t worker_dev_id = sched_ctx->workers[i].dev_id;
/* stop all workers first */
for (i = 0; i < sched_ctx->nb_workers; i++) {
uint8_t worker_dev_id = sched_ctx->workers[i].dev_id;
- struct rte_cryptodev *worker_dev =
- rte_cryptodev_pmd_get_dev(worker_dev_id);
- (*worker_dev->dev_ops->dev_stop)(worker_dev);
+ rte_cryptodev_stop(worker_dev_id);
}
if (*sched_ctx->ops.scheduler_stop)
}
if (*sched_ctx->ops.scheduler_stop)