vhost: replace vDPA device ID in Vhost
[dpdk.git] / examples / vdpa / main.c
index e72f664..6a719e3 100644 (file)
@@ -149,6 +149,7 @@ start_vdpa(struct vdpa_port *vport)
 {
        int ret;
        char *socket_path = vport->ifname;
+       struct rte_vdpa_device *vdev;
        int did = vport->did;
 
        if (client_mode)
@@ -173,7 +174,13 @@ start_vdpa(struct vdpa_port *vport)
                        "register driver ops failed: %s\n",
                        socket_path);
 
-       ret = rte_vhost_driver_attach_vdpa_device(socket_path, did);
+       vdev = rte_vdpa_get_device(did);
+       if (!vdev)
+               rte_exit(EXIT_FAILURE,
+                       "vDPA device retrieval failed: %p\n",
+                       vdev);
+
+       ret = rte_vhost_driver_attach_vdpa_device(socket_path, vdev);
        if (ret != 0)
                rte_exit(EXIT_FAILURE,
                        "attach vdpa device failed: %s\n",
@@ -291,13 +298,13 @@ static void cmd_list_vdpa_devices_parsed(
                vdev = rte_vdpa_get_device(did);
                if (!vdev)
                        continue;
-               if (vdev->ops->get_queue_num(did, &queue_num) < 0) {
+               if (vdev->ops->get_queue_num(vdev, &queue_num) < 0) {
                        RTE_LOG(ERR, VDPA,
                                "failed to get vdpa queue number "
                                "for device id %d.\n", did);
                        continue;
                }
-               if (vdev->ops->get_features(did, &features) < 0) {
+               if (vdev->ops->get_features(vdev, &features) < 0) {
                        RTE_LOG(ERR, VDPA,
                                "failed to get vdpa features "
                                "for device id %d.\n", did);