The commit is pushed to "branch-rh9-5.14.0-70.22.1.vz9.17.x-ovz" and will 
appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh9-5.14.0-70.22.1.vz9.17.9
------>
commit 86f4b5dd77a94fc8d9a35e27077ec54926e8a7cf
Author: Konstantin Khorenko <khore...@virtuozzo.com>
Date:   Wed Nov 16 15:56:01 2022 +0300

    Revert "drivers/vhost: allow polls to be bound to workers via vqs"
    
    This reverts commit 97af99ea1c8e5a0da27446728c24669f16cf91ee.
    
    Will apply v5 of the patchset.
    https://jira.sw.ru/browse/PSBM-139414
    
    Signed-off-by: Konstantin Khorenko <khore...@virtuozzo.com>
---
 drivers/vhost/vhost.c | 24 ++++++++----------------
 drivers/vhost/vhost.h |  4 +---
 2 files changed, 9 insertions(+), 19 deletions(-)

diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
index cac369ca6f0c..3c79f6abdc13 100644
--- a/drivers/vhost/vhost.c
+++ b/drivers/vhost/vhost.c
@@ -170,7 +170,7 @@ static int vhost_poll_wakeup(wait_queue_entry_t *wait, 
unsigned mode, int sync,
        if (!(key_to_poll(key) & poll->mask))
                return 0;
 
-       if (!poll->vq->dev->use_worker)
+       if (!poll->dev->use_worker)
                work->fn(work);
        else
                vhost_poll_queue(poll);
@@ -185,27 +185,19 @@ void vhost_work_init(struct vhost_work *work, 
vhost_work_fn_t fn)
 }
 EXPORT_SYMBOL_GPL(vhost_work_init);
 
+/* Init poll structure */
 void vhost_poll_init(struct vhost_poll *poll, vhost_work_fn_t fn,
                     __poll_t mask, struct vhost_dev *dev)
-{
-       vhost_poll_init_vq(poll, fn, mask, dev->vqs[0]);
-}
-EXPORT_SYMBOL_GPL(vhost_poll_init);
-
-
-/* Init poll structure */
-void vhost_poll_init_vq(struct vhost_poll *poll, vhost_work_fn_t fn,
-                    __poll_t mask, struct vhost_virtqueue *vq)
 {
        init_waitqueue_func_entry(&poll->wait, vhost_poll_wakeup);
        init_poll_funcptr(&poll->table, vhost_poll_func);
        poll->mask = mask;
-       poll->vq = vq;
+       poll->dev = dev;
        poll->wqh = NULL;
 
        vhost_work_init(&poll->work, fn);
 }
-EXPORT_SYMBOL_GPL(vhost_poll_init_vq);
+EXPORT_SYMBOL_GPL(vhost_poll_init);
 
 /* Start polling a file. We add ourselves to file's wait queue. The caller must
  * keep a reference to a file until after vhost_poll_stop is called. */
@@ -295,7 +287,7 @@ EXPORT_SYMBOL_GPL(vhost_work_flush_vq);
  * locks that are also used by the callback. */
 void vhost_poll_flush(struct vhost_poll *poll)
 {
-       vhost_work_flush_vq(poll->vq);
+       vhost_work_dev_flush(poll->dev);
 }
 EXPORT_SYMBOL_GPL(vhost_poll_flush);
 
@@ -330,7 +322,7 @@ EXPORT_SYMBOL_GPL(vhost_has_work);
 
 void vhost_poll_queue(struct vhost_poll *poll)
 {
-       vhost_work_queue_vq(poll->vq, &poll->work);
+       vhost_work_queue(poll->dev, &poll->work);
 }
 EXPORT_SYMBOL_GPL(vhost_poll_queue);
 
@@ -579,8 +571,8 @@ void vhost_dev_init(struct vhost_dev *dev,
                mutex_init(&vq->mutex);
                vhost_vq_reset(dev, vq);
                if (vq->handle_kick)
-                       vhost_poll_init_vq(&vq->poll, vq->handle_kick,
-                                          EPOLLIN, vq);
+                       vhost_poll_init(&vq->poll, vq->handle_kick,
+                                       EPOLLIN, dev);
        }
 }
 EXPORT_SYMBOL_GPL(vhost_dev_init);
diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h
index 4182fd7fceaf..dc7428c26cbe 100644
--- a/drivers/vhost/vhost.h
+++ b/drivers/vhost/vhost.h
@@ -40,7 +40,7 @@ struct vhost_poll {
        wait_queue_entry_t      wait;
        struct vhost_work       work;
        __poll_t                mask;
-       struct vhost_virtqueue  *vq;
+       struct vhost_dev        *dev;
 };
 
 void vhost_work_init(struct vhost_work *work, vhost_work_fn_t fn);
@@ -49,8 +49,6 @@ bool vhost_has_work(struct vhost_dev *dev);
 
 void vhost_poll_init(struct vhost_poll *poll, vhost_work_fn_t fn,
                     __poll_t mask, struct vhost_dev *dev);
-void vhost_poll_init_vq(struct vhost_poll *poll, vhost_work_fn_t fn,
-                    __poll_t mask, struct vhost_virtqueue *vq);
 int vhost_poll_start(struct vhost_poll *poll, struct file *file);
 void vhost_poll_stop(struct vhost_poll *poll);
 void vhost_poll_flush(struct vhost_poll *poll);
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to