Blame SOURCES/kvm-vhost-vdpa-change-name-and-polarity-for-vhost_vdpa_o.patch

586cba
From 58acdab17ec00ab76105ab92a51c5ba4dec3df5a Mon Sep 17 00:00:00 2001
24c150
From: Si-Wei Liu <si-wei.liu@oracle.com>
24c150
Date: Fri, 6 May 2022 19:28:17 -0700
586cba
Subject: [PATCH 13/16] vhost-vdpa: change name and polarity for
24c150
 vhost_vdpa_one_time_request()
24c150
MIME-Version: 1.0
24c150
Content-Type: text/plain; charset=UTF-8
24c150
Content-Transfer-Encoding: 8bit
24c150
586cba
RH-Author: Jason Wang <jasowang@redhat.com>
586cba
RH-MergeRequest: 98: Multiqueue fixes for vhost-vDPA
586cba
RH-Commit: [6/7] 7029778f463a136ff412c63b86b6953390e47bf8 (jasowang/qemu-kvm-cs)
586cba
RH-Bugzilla: 2070804
24c150
RH-Acked-by: Eugenio PĂ©rez <eperezma@redhat.com>
586cba
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
586cba
RH-Acked-by: Cindy Lu <lulu@redhat.com>
24c150
24c150
The name vhost_vdpa_one_time_request() was confusing. No
24c150
matter whatever it returns, its typical occurrence had
24c150
always been at requests that only need to be applied once.
24c150
And the name didn't suggest what it actually checks for.
24c150
Change it to vhost_vdpa_first_dev() with polarity flipped
24c150
for better readibility of code. That way it is able to
24c150
reflect what the check is really about.
24c150
24c150
This call is applicable to request which performs operation
24c150
only once, before queues are set up, and usually at the beginning
24c150
of the caller function. Document the requirement for it in place.
24c150
24c150
Signed-off-by: Si-Wei Liu <si-wei.liu@oracle.com>
24c150
Message-Id: <1651890498-24478-7-git-send-email-si-wei.liu@oracle.com>
24c150
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
24c150
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
24c150
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
24c150
Acked-by: Jason Wang <jasowang@redhat.com>
24c150
(cherry picked from commit d71b0609fc04217e28d17009f04d74b08be6f466)
586cba
Signed-off-by: Jason Wang <jasowang@redhat.com>
24c150
---
24c150
 hw/virtio/vhost-vdpa.c | 23 +++++++++++++++--------
24c150
 1 file changed, 15 insertions(+), 8 deletions(-)
24c150
24c150
diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
586cba
index 6e3dbd9e89..33dcaa135e 100644
24c150
--- a/hw/virtio/vhost-vdpa.c
24c150
+++ b/hw/virtio/vhost-vdpa.c
586cba
@@ -366,11 +366,18 @@ static void vhost_vdpa_get_iova_range(struct vhost_vdpa *v)
24c150
                                     v->iova_range.last);
24c150
 }
24c150
 
24c150
-static bool vhost_vdpa_one_time_request(struct vhost_dev *dev)
24c150
+/*
24c150
+ * The use of this function is for requests that only need to be
24c150
+ * applied once. Typically such request occurs at the beginning
24c150
+ * of operation, and before setting up queues. It should not be
24c150
+ * used for request that performs operation until all queues are
24c150
+ * set, which would need to check dev->vq_index_end instead.
24c150
+ */
24c150
+static bool vhost_vdpa_first_dev(struct vhost_dev *dev)
24c150
 {
24c150
     struct vhost_vdpa *v = dev->opaque;
24c150
 
24c150
-    return v->index != 0;
24c150
+    return v->index == 0;
24c150
 }
24c150
 
586cba
 static int vhost_vdpa_get_dev_features(struct vhost_dev *dev,
586cba
@@ -451,7 +458,7 @@ static int vhost_vdpa_init(struct vhost_dev *dev, void *opaque, Error **errp)
24c150
 
24c150
     vhost_vdpa_get_iova_range(v);
24c150
 
24c150
-    if (vhost_vdpa_one_time_request(dev)) {
24c150
+    if (!vhost_vdpa_first_dev(dev)) {
24c150
         return 0;
24c150
     }
24c150
 
586cba
@@ -594,7 +601,7 @@ static int vhost_vdpa_memslots_limit(struct vhost_dev *dev)
24c150
 static int vhost_vdpa_set_mem_table(struct vhost_dev *dev,
24c150
                                     struct vhost_memory *mem)
24c150
 {
24c150
-    if (vhost_vdpa_one_time_request(dev)) {
24c150
+    if (!vhost_vdpa_first_dev(dev)) {
24c150
         return 0;
24c150
     }
24c150
 
586cba
@@ -623,7 +630,7 @@ static int vhost_vdpa_set_features(struct vhost_dev *dev,
586cba
     struct vhost_vdpa *v = dev->opaque;
24c150
     int ret;
24c150
 
24c150
-    if (vhost_vdpa_one_time_request(dev)) {
24c150
+    if (!vhost_vdpa_first_dev(dev)) {
24c150
         return 0;
24c150
     }
24c150
 
586cba
@@ -665,7 +672,7 @@ static int vhost_vdpa_set_backend_cap(struct vhost_dev *dev)
24c150
 
24c150
     features &= f;
24c150
 
24c150
-    if (!vhost_vdpa_one_time_request(dev)) {
24c150
+    if (vhost_vdpa_first_dev(dev)) {
24c150
         r = vhost_vdpa_call(dev, VHOST_SET_BACKEND_FEATURES, &features);
24c150
         if (r) {
24c150
             return -EFAULT;
586cba
@@ -1118,7 +1125,7 @@ static int vhost_vdpa_set_log_base(struct vhost_dev *dev, uint64_t base,
24c150
                                      struct vhost_log *log)
24c150
 {
586cba
     struct vhost_vdpa *v = dev->opaque;
586cba
-    if (v->shadow_vqs_enabled || vhost_vdpa_one_time_request(dev)) {
586cba
+    if (v->shadow_vqs_enabled || !vhost_vdpa_first_dev(dev)) {
24c150
         return 0;
24c150
     }
24c150
 
586cba
@@ -1240,7 +1247,7 @@ static int vhost_vdpa_get_features(struct vhost_dev *dev,
24c150
 
24c150
 static int vhost_vdpa_set_owner(struct vhost_dev *dev)
24c150
 {
24c150
-    if (vhost_vdpa_one_time_request(dev)) {
24c150
+    if (!vhost_vdpa_first_dev(dev)) {
24c150
         return 0;
24c150
     }
24c150
 
24c150
-- 
24c150
2.31.1
24c150