net/qede/base: fix macros to check chip revision/metal
[dpdk.git] / drivers / net / virtio / virtio_user_ethdev.c
index 7979c1f..c961444 100644 (file)
 #include <sys/types.h>
 #include <unistd.h>
 #include <fcntl.h>
-#include <sys/types.h>
 #include <sys/socket.h>
 
 #include <rte_malloc.h>
 #include <rte_kvargs.h>
+#include <rte_ethdev_vdev.h>
 #include <rte_vdev.h>
 #include <rte_alarm.h>
 
@@ -336,27 +336,21 @@ get_integer_arg(const char *key __rte_unused,
 static struct rte_vdev_driver virtio_user_driver;
 
 static struct rte_eth_dev *
-virtio_user_eth_dev_alloc(const char *name)
+virtio_user_eth_dev_alloc(struct rte_vdev_device *vdev)
 {
        struct rte_eth_dev *eth_dev;
        struct rte_eth_dev_data *data;
        struct virtio_hw *hw;
        struct virtio_user_dev *dev;
 
-       eth_dev = rte_eth_dev_allocate(name);
+       eth_dev = rte_eth_vdev_allocate(vdev, sizeof(*hw));
        if (!eth_dev) {
                PMD_INIT_LOG(ERR, "cannot alloc rte_eth_dev");
                return NULL;
        }
 
        data = eth_dev->data;
-
-       hw = rte_zmalloc(NULL, sizeof(*hw), 0);
-       if (!hw) {
-               PMD_INIT_LOG(ERR, "malloc virtio_hw failed");
-               rte_eth_dev_release_port(eth_dev);
-               return NULL;
-       }
+       hw = eth_dev->data->dev_private;
 
        dev = rte_zmalloc(NULL, sizeof(*dev), 0);
        if (!dev) {
@@ -377,12 +371,7 @@ virtio_user_eth_dev_alloc(const char *name)
        hw->modern   = 0;
        hw->use_simple_rxtx = 0;
        hw->virtio_user_dev = dev;
-       data->dev_private = hw;
-       data->drv_name = virtio_user_driver.driver.name;
-       data->numa_node = SOCKET_ID_ANY;
-       data->kdrv = RTE_KDRV_NONE;
        data->dev_flags = RTE_ETH_DEV_DETACHABLE;
-       eth_dev->driver = NULL;
        return eth_dev;
 }
 
@@ -398,7 +387,7 @@ virtio_user_eth_dev_free(struct rte_eth_dev *eth_dev)
 }
 
 /* Dev initialization routine. Invoked once for each virtio vdev at
- * EAL init time, see rte_eal_dev_init().
+ * EAL init time, see rte_bus_probe().
  * Returns 0 on success.
  */
 static int
@@ -501,7 +490,7 @@ virtio_user_pmd_probe(struct rte_vdev_device *dev)
        }
 
        if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
-               eth_dev = virtio_user_eth_dev_alloc(rte_vdev_device_name(dev));
+               eth_dev = virtio_user_eth_dev_alloc(dev);
                if (!eth_dev) {
                        PMD_INIT_LOG(ERR, "virtio_user fails to alloc device");
                        goto end;
@@ -520,7 +509,7 @@ virtio_user_pmd_probe(struct rte_vdev_device *dev)
                        goto end;
        }
 
-       /* previously called by rte_eal_pci_probe() for physical dev */
+       /* previously called by rte_pci_probe() for physical dev */
        if (eth_virtio_dev_init(eth_dev) < 0) {
                PMD_INIT_LOG(ERR, "eth_virtio_dev_init fails");
                virtio_user_eth_dev_free(eth_dev);
@@ -566,7 +555,6 @@ virtio_user_pmd_remove(struct rte_vdev_device *vdev)
        virtio_user_dev_uninit(dev);
 
        rte_free(eth_dev->data->dev_private);
-       rte_free(eth_dev->data);
        rte_eth_dev_release_port(eth_dev);
 
        return 0;