ethdev: remove forcing stopped state upon close
[dpdk.git] / drivers / net / vhost / rte_eth_vhost.c
index 45552ef..5328cfc 100644 (file)
@@ -29,7 +29,6 @@ enum {VIRTIO_RXQ, VIRTIO_TXQ, VIRTIO_QNUM};
 #define ETH_VHOST_IFACE_ARG            "iface"
 #define ETH_VHOST_QUEUES_ARG           "queues"
 #define ETH_VHOST_CLIENT_ARG           "client"
-#define ETH_VHOST_DEQUEUE_ZERO_COPY    "dequeue-zero-copy"
 #define ETH_VHOST_IOMMU_SUPPORT                "iommu-support"
 #define ETH_VHOST_POSTCOPY_SUPPORT     "postcopy-support"
 #define ETH_VHOST_VIRTIO_NET_F_HOST_TSO "tso"
@@ -41,7 +40,6 @@ static const char *valid_arguments[] = {
        ETH_VHOST_IFACE_ARG,
        ETH_VHOST_QUEUES_ARG,
        ETH_VHOST_CLIENT_ARG,
-       ETH_VHOST_DEQUEUE_ZERO_COPY,
        ETH_VHOST_IOMMU_SUPPORT,
        ETH_VHOST_POSTCOPY_SUPPORT,
        ETH_VHOST_VIRTIO_NET_F_HOST_TSO,
@@ -1160,6 +1158,7 @@ eth_dev_stop(struct rte_eth_dev *dev)
 {
        struct pmd_internal *internal = dev->data->dev_private;
 
+       dev->data->dev_started = 0;
        rte_atomic32_set(&internal->started, 0);
        update_queuing_status(dev);
 }
@@ -1171,6 +1170,9 @@ eth_dev_close(struct rte_eth_dev *dev)
        struct internal_list *list;
        unsigned int i;
 
+       if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+               return 0;
+
        internal = dev->data->dev_private;
        if (!internal)
                return 0;
@@ -1503,7 +1505,6 @@ rte_pmd_vhost_probe(struct rte_vdev_device *dev)
        uint64_t flags = 0;
        uint64_t disable_flags = 0;
        int client_mode = 0;
-       int dequeue_zero_copy = 0;
        int iommu_support = 0;
        int postcopy_support = 0;
        int tso = 0;
@@ -1563,16 +1564,6 @@ rte_pmd_vhost_probe(struct rte_vdev_device *dev)
                        flags |= RTE_VHOST_USER_CLIENT;
        }
 
-       if (rte_kvargs_count(kvlist, ETH_VHOST_DEQUEUE_ZERO_COPY) == 1) {
-               ret = rte_kvargs_process(kvlist, ETH_VHOST_DEQUEUE_ZERO_COPY,
-                                        &open_int, &dequeue_zero_copy);
-               if (ret < 0)
-                       goto out_free;
-
-               if (dequeue_zero_copy)
-                       flags |= RTE_VHOST_USER_DEQUEUE_ZERO_COPY;
-       }
-
        if (rte_kvargs_count(kvlist, ETH_VHOST_IOMMU_SUPPORT) == 1) {
                ret = rte_kvargs_process(kvlist, ETH_VHOST_IOMMU_SUPPORT,
                                         &open_int, &iommu_support);
@@ -1655,11 +1646,7 @@ rte_pmd_vhost_remove(struct rte_vdev_device *dev)
        if (eth_dev == NULL)
                return 0;
 
-       if (rte_eal_process_type() != RTE_PROC_PRIMARY)
-               return rte_eth_dev_release_port(eth_dev);
-
        eth_dev_close(eth_dev);
-
        rte_eth_dev_release_port(eth_dev);
 
        return 0;
@@ -1676,7 +1663,6 @@ RTE_PMD_REGISTER_PARAM_STRING(net_vhost,
        "iface=<ifc> "
        "queues=<int> "
        "client=<0|1> "
-       "dequeue-zero-copy=<0|1> "
        "iommu-support=<0|1> "
        "postcopy-support=<0|1> "
        "tso=<0|1> "