4841a6
From c8cb46fa93a3ccad6f3e183045b270f28eed7b12 Mon Sep 17 00:00:00 2001
719b13
From: Si-Wei Liu <si-wei.liu@oracle.com>
719b13
Date: Fri, 6 May 2022 19:28:17 -0700
4841a6
Subject: [PATCH 19/24] vhost-vdpa: change name and polarity for
719b13
 vhost_vdpa_one_time_request()
719b13
MIME-Version: 1.0
719b13
Content-Type: text/plain; charset=UTF-8
719b13
Content-Transfer-Encoding: 8bit
719b13
4841a6
RH-Author: Jason Wang <jasowang@redhat.com>
4841a6
RH-MergeRequest: 187: Multiqueue fixes for vhost-vDPA
4841a6
RH-Commit: [6/7] 727ab0bb813f073e8cd2f7e68a9acda60c2cb33d
4841a6
RH-Bugzilla: 2069946
719b13
RH-Acked-by: Eugenio PĂ©rez <eperezma@redhat.com>
4841a6
RH-Acked-by: Cindy Lu <lulu@redhat.com>
4841a6
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
719b13
719b13
The name vhost_vdpa_one_time_request() was confusing. No
719b13
matter whatever it returns, its typical occurrence had
719b13
always been at requests that only need to be applied once.
719b13
And the name didn't suggest what it actually checks for.
719b13
Change it to vhost_vdpa_first_dev() with polarity flipped
719b13
for better readibility of code. That way it is able to
719b13
reflect what the check is really about.
719b13
719b13
This call is applicable to request which performs operation
719b13
only once, before queues are set up, and usually at the beginning
719b13
of the caller function. Document the requirement for it in place.
719b13
4841a6
Conflicts: hw/virtio/vhost-vdpa.c since we don't have shadow virtqueue
4841a6
suport.
4841a6
719b13
Signed-off-by: Si-Wei Liu <si-wei.liu@oracle.com>
719b13
Message-Id: <1651890498-24478-7-git-send-email-si-wei.liu@oracle.com>
719b13
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
719b13
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
719b13
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
719b13
Acked-by: Jason Wang <jasowang@redhat.com>
719b13
(cherry picked from commit d71b0609fc04217e28d17009f04d74b08be6f466)
4841a6
Signed-off-by: Jason Wang <jasowang@redhat.com>
719b13
---
719b13
 hw/virtio/vhost-vdpa.c | 23 +++++++++++++++--------
719b13
 1 file changed, 15 insertions(+), 8 deletions(-)
719b13
719b13
diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
719b13
index a9be24776a..38bbcb3c18 100644
719b13
--- a/hw/virtio/vhost-vdpa.c
719b13
+++ b/hw/virtio/vhost-vdpa.c
719b13
@@ -319,11 +319,18 @@ static void vhost_vdpa_get_iova_range(struct vhost_vdpa *v)
719b13
                                     v->iova_range.last);
719b13
 }
719b13
 
719b13
-static bool vhost_vdpa_one_time_request(struct vhost_dev *dev)
719b13
+/*
719b13
+ * The use of this function is for requests that only need to be
719b13
+ * applied once. Typically such request occurs at the beginning
719b13
+ * of operation, and before setting up queues. It should not be
719b13
+ * used for request that performs operation until all queues are
719b13
+ * set, which would need to check dev->vq_index_end instead.
719b13
+ */
719b13
+static bool vhost_vdpa_first_dev(struct vhost_dev *dev)
719b13
 {
719b13
     struct vhost_vdpa *v = dev->opaque;
719b13
 
719b13
-    return v->index != 0;
719b13
+    return v->index == 0;
719b13
 }
719b13
 
719b13
 static int vhost_vdpa_init(struct vhost_dev *dev, void *opaque, Error **errp)
719b13
@@ -351,7 +358,7 @@ static int vhost_vdpa_init(struct vhost_dev *dev, void *opaque, Error **errp)
719b13
 
719b13
     vhost_vdpa_get_iova_range(v);
719b13
 
719b13
-    if (vhost_vdpa_one_time_request(dev)) {
719b13
+    if (!vhost_vdpa_first_dev(dev)) {
719b13
         return 0;
719b13
     }
719b13
 
719b13
@@ -468,7 +475,7 @@ static int vhost_vdpa_memslots_limit(struct vhost_dev *dev)
719b13
 static int vhost_vdpa_set_mem_table(struct vhost_dev *dev,
719b13
                                     struct vhost_memory *mem)
719b13
 {
719b13
-    if (vhost_vdpa_one_time_request(dev)) {
719b13
+    if (!vhost_vdpa_first_dev(dev)) {
719b13
         return 0;
719b13
     }
719b13
 
719b13
@@ -496,7 +503,7 @@ static int vhost_vdpa_set_features(struct vhost_dev *dev,
719b13
 {
719b13
     int ret;
719b13
 
719b13
-    if (vhost_vdpa_one_time_request(dev)) {
719b13
+    if (!vhost_vdpa_first_dev(dev)) {
719b13
         return 0;
719b13
     }
719b13
 
719b13
@@ -525,7 +532,7 @@ static int vhost_vdpa_set_backend_cap(struct vhost_dev *dev)
719b13
 
719b13
     features &= f;
719b13
 
719b13
-    if (!vhost_vdpa_one_time_request(dev)) {
719b13
+    if (vhost_vdpa_first_dev(dev)) {
719b13
         r = vhost_vdpa_call(dev, VHOST_SET_BACKEND_FEATURES, &features);
719b13
         if (r) {
719b13
             return -EFAULT;
719b13
@@ -670,7 +677,7 @@ static int vhost_vdpa_dev_start(struct vhost_dev *dev, bool started)
719b13
 static int vhost_vdpa_set_log_base(struct vhost_dev *dev, uint64_t base,
719b13
                                      struct vhost_log *log)
719b13
 {
719b13
-    if (vhost_vdpa_one_time_request(dev)) {
719b13
+    if (!vhost_vdpa_first_dev(dev)) {
719b13
         return 0;
719b13
     }
719b13
 
719b13
@@ -739,7 +746,7 @@ static int vhost_vdpa_get_features(struct vhost_dev *dev,
719b13
 
719b13
 static int vhost_vdpa_set_owner(struct vhost_dev *dev)
719b13
 {
719b13
-    if (vhost_vdpa_one_time_request(dev)) {
719b13
+    if (!vhost_vdpa_first_dev(dev)) {
719b13
         return 0;
719b13
     }
719b13
 
719b13
-- 
4841a6
2.35.3
719b13