]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/vhost/vhost.c
vhost: zerocopy: poll vq in zerocopy callback
[karo-tx-linux.git] / drivers / vhost / vhost.c
index 947f00d8e091a3f2f3c01cc7cc23f5f2658d37df..94dbd25caa303c44c4c972230fcb2752da619fc0 100644 (file)
@@ -1598,12 +1598,12 @@ void vhost_ubuf_put_and_wait(struct vhost_ubuf_ref *ubufs)
        kfree(ubufs);
 }
 
-void vhost_zerocopy_callback(void *arg)
+void vhost_zerocopy_callback(struct ubuf_info *ubuf)
 {
-       struct ubuf_info *ubuf = arg;
-       struct vhost_ubuf_ref *ubufs = ubuf->arg;
+       struct vhost_ubuf_ref *ubufs = ubuf->ctx;
        struct vhost_virtqueue *vq = ubufs->vq;
 
+       vhost_poll_queue(&vq->poll);
        /* set len = 1 to mark this desc buffers done DMA */
        vq->heads[ubuf->desc].len = VHOST_DMA_DONE_LEN;
        kref_put(&ubufs->kref, vhost_zerocopy_done_signal);