diff options
author | Jason Wang <jasowang@redhat.com> | 2019-05-24 04:12:13 -0400 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2019-06-05 16:23:52 -0400 |
commit | 1ab5d1385af40272ca44a5cd38af7e13da6ed847 (patch) | |
tree | 266251dade0c6ed9ae0fdae4efd48354918d2608 /drivers/vhost/vhost.c | |
parent | c1ea02f15ab5efb3e93fc3144d895410bf79fcf2 (diff) | |
download | linux-1ab5d1385af40272ca44a5cd38af7e13da6ed847.tar.gz linux-1ab5d1385af40272ca44a5cd38af7e13da6ed847.tar.bz2 linux-1ab5d1385af40272ca44a5cd38af7e13da6ed847.zip |
vhost: generalize adding used elem
Use one generic vhost_copy_to_user() instead of two dedicated
accessor. This will simplify the conversion to fine grain
accessors. About 2% improvement of PPS were seen during vitio-user
txonly test.
Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'drivers/vhost/vhost.c')
-rw-r--r-- | drivers/vhost/vhost.c | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index 3f3eac4bcc58..3fb58015f8b3 100644 --- a/drivers/vhost/vhost.c +++ b/drivers/vhost/vhost.c @@ -2273,16 +2273,7 @@ static int __vhost_add_used_n(struct vhost_virtqueue *vq, start = vq->last_used_idx & (vq->num - 1); used = vq->used->ring + start; - if (count == 1) { - if (vhost_put_user(vq, heads[0].id, &used->id)) { - vq_err(vq, "Failed to write used id"); - return -EFAULT; - } - if (vhost_put_user(vq, heads[0].len, &used->len)) { - vq_err(vq, "Failed to write used len"); - return -EFAULT; - } - } else if (vhost_copy_to_user(vq, used, heads, count * sizeof *used)) { + if (vhost_copy_to_user(vq, used, heads, count * sizeof *used)) { vq_err(vq, "Failed to write used"); return -EFAULT; } |