static int cryptodev_scheduler_remove(struct rte_vdev_device *vdev) { const char *name; struct rte_cryptodev *dev; struct scheduler_ctx *sched_ctx; if (vdev == NULL) return -EINVAL; name = rte_vdev_device_name(vdev); dev = rte_cryptodev_pmd_get_named_dev(name); if (dev == NULL) return -EINVAL; sched_ctx = dev->data->dev_private; if (sched_ctx->nb_slaves) { uint32_t i; for (i = 0; i < sched_ctx->nb_slaves; i++) rte_cryptodev_scheduler_slave_detach(dev->data->dev_id, sched_ctx->slaves[i].dev_id); } return rte_cryptodev_pmd_destroy(dev); }
static int cryptodev_scheduler_remove(struct rte_vdev_device *vdev) { const char *name; struct rte_cryptodev *dev; struct scheduler_ctx *sched_ctx; if (vdev == NULL) return -EINVAL; name = rte_vdev_device_name(vdev); dev = rte_cryptodev_pmd_get_named_dev(name); if (dev == NULL) return -EINVAL; sched_ctx = dev->data->dev_private; if (sched_ctx->nb_slaves) { uint32_t i; for (i = 0; i < sched_ctx->nb_slaves; i++) rte_cryptodev_scheduler_slave_detach(dev->data->dev_id, sched_ctx->slaves[i].dev_id); } RTE_LOG(INFO, PMD, "Closing Crypto Scheduler device %s on numa " "socket %u\n", name, rte_socket_id()); return 0; }