From: Jan Blunck Date: Fri, 30 Jun 2017 18:19:39 +0000 (+0200) Subject: bus/vdev: implement unplug operation X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=96f54a07c828c7f8d98cec1a0ddb2e391ed149e2;p=dpdk.git bus/vdev: implement unplug operation Signed-off-by: Jan Blunck --- diff --git a/lib/librte_eal/common/eal_common_vdev.c b/lib/librte_eal/common/eal_common_vdev.c index 9bb7427419..baf3c5bfa2 100644 --- a/lib/librte_eal/common/eal_common_vdev.c +++ b/lib/librte_eal/common/eal_common_vdev.c @@ -39,11 +39,13 @@ #include #include +#include #include #include #include #include #include +#include /** Double linked list of virtual device drivers. */ TAILQ_HEAD(vdev_device_list, rte_vdev_device); @@ -354,10 +356,22 @@ vdev_find_device(const struct rte_device *start, rte_dev_cmp_t cmp, return NULL; } +static int +vdev_unplug(struct rte_device *dev) +{ + /* + * The virtual bus doesn't support 'unattached' devices so this is + * actually equal to hotplugging removal of it. + */ + return rte_vdev_uninit(dev->name); +} + static struct rte_bus rte_vdev_bus = { .scan = vdev_scan, .probe = vdev_probe, .find_device = vdev_find_device, + /* .plug = NULL, see comment on vdev_unplug */ + .unplug = vdev_unplug, }; RTE_REGISTER_BUS(VIRTUAL_BUS_NAME, rte_vdev_bus);