ethdev: get rid of device type
[dpdk.git] / drivers / net / vhost / rte_eth_vhost.c
index 596faea..d0bffbd 100644 (file)
@@ -303,6 +303,7 @@ destroy_device(int vid)
        struct internal_list *list;
        char ifname[PATH_MAX];
        unsigned i;
+       struct rte_vhost_vring_state *state;
 
        rte_vhost_get_ifname(vid, ifname, sizeof(ifname));
        list = find_internal_resource(ifname);
@@ -345,6 +346,15 @@ destroy_device(int vid)
                vq->vid = -1;
        }
 
+       state = vring_states[eth_dev->data->port_id];
+       rte_spinlock_lock(&state->lock);
+       for (i = 0; i <= state->max_vring; i++) {
+               state->cur[i] = false;
+               state->seen[i] = false;
+       }
+       state->max_vring = 0;
+       rte_spinlock_unlock(&state->lock);
+
        RTE_LOG(INFO, PMD, "Connection closed\n");
 
        _rte_eth_dev_callback_process(eth_dev, RTE_ETH_EVENT_INTR_LSC);
@@ -704,7 +714,7 @@ eth_dev_vhost_create(const char *name, char *iface_name, int16_t queues,
                goto error;
 
        /* reserve an ethdev entry */
-       eth_dev = rte_eth_dev_allocate(name, RTE_ETH_DEV_VIRTUAL);
+       eth_dev = rte_eth_dev_allocate(name);
        if (eth_dev == NULL)
                goto error;
 
@@ -920,7 +930,7 @@ static struct rte_driver pmd_vhost_drv = {
        .uninit = rte_pmd_vhost_devuninit,
 };
 
-PMD_REGISTER_DRIVER(pmd_vhost_drv, eth_vhost);
-DRIVER_REGISTER_PARAM_STRING(eth_vhost,
+PMD_REGISTER_DRIVER(pmd_vhost_drv, net_vhost);
+DRIVER_REGISTER_PARAM_STRING(net_vhost,
        "iface=<ifc> "
        "queues=<int>");