Merge tag 'locking-core-2023-05-05' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-block.git] / drivers / vhost / vhost.c
index 6d07b42833be4093b7c6a6f4b738e1b4ef800db9..a92af08e786450640b2bb6fa848810dec402fcbb 100644 (file)
@@ -361,8 +361,7 @@ static int vhost_worker(void *data)
                        kcov_remote_start_common(worker->kcov_handle);
                        work->fn(work);
                        kcov_remote_stop();
-                       if (need_resched())
-                               schedule();
+                       cond_resched();
                }
        }
 
@@ -434,8 +433,7 @@ static size_t vhost_get_avail_size(struct vhost_virtqueue *vq,
        size_t event __maybe_unused =
               vhost_has_feature(vq, VIRTIO_RING_F_EVENT_IDX) ? 2 : 0;
 
-       return sizeof(*vq->avail) +
-              sizeof(*vq->avail->ring) * num + event;
+       return size_add(struct_size(vq->avail, ring, num), event);
 }
 
 static size_t vhost_get_used_size(struct vhost_virtqueue *vq,
@@ -444,8 +442,7 @@ static size_t vhost_get_used_size(struct vhost_virtqueue *vq,
        size_t event __maybe_unused =
               vhost_has_feature(vq, VIRTIO_RING_F_EVENT_IDX) ? 2 : 0;
 
-       return sizeof(*vq->used) +
-              sizeof(*vq->used->ring) * num + event;
+       return size_add(struct_size(vq->used, ring, num), event);
 }
 
 static size_t vhost_get_desc_size(struct vhost_virtqueue *vq,