[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH RFC 4/7] vhost: set vring endianness for legacy
From: |
Cornelia Huck |
Subject: |
Re: [Qemu-devel] [PATCH RFC 4/7] vhost: set vring endianness for legacy virtio |
Date: |
Tue, 12 May 2015 15:25:30 +0200 |
On Wed, 06 May 2015 14:08:02 +0200
Greg Kurz <address@hidden> wrote:
> Legacy virtio is native endian: if the guest and host endianness differ,
> we have to tell vhost so it can swap bytes where appropriate. This is
> done through a vhost ring ioctl.
>
> Signed-off-by: Greg Kurz <address@hidden>
> ---
> hw/virtio/vhost.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 49 insertions(+), 1 deletion(-)
>
> diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
> index 54851b7..1d7b939 100644
> --- a/hw/virtio/vhost.c
> +++ b/hw/virtio/vhost.c
(...)
> @@ -677,6 +700,16 @@ static int vhost_virtqueue_start(struct vhost_dev *dev,
> return -errno;
> }
>
> + if (!virtio_has_feature(vdev, VIRTIO_F_VERSION_1) &&
I think this should either go in after the virtio-1 base support (more
feature bits etc.) or get a big fat comment and be touched up later.
I'd prefer the first solution so it does not get forgotten, but I'm not
sure when Michael plans to proceed with the virtio-1 patches (I think
they're mostly fine already).
> + virtio_legacy_is_cross_endian(vdev)) {
> + r = vhost_virtqueue_set_vring_endian_legacy(dev,
> +
> virtio_is_big_endian(vdev),
> + vhost_vq_index);
> + if (r) {
> + return -errno;
> + }
> + }
> +
> s = l = virtio_queue_get_desc_size(vdev, idx);
> a = virtio_queue_get_desc_addr(vdev, idx);
> vq->desc = cpu_physical_memory_map(a, &l, 0);
- Re: [Qemu-devel] [PATCH RFC 1/7] virtio: relax feature check, (continued)
- Re: [Qemu-devel] [PATCH RFC 1/7] virtio: relax feature check, Michael S. Tsirkin, 2015/05/12
- Re: [Qemu-devel] [PATCH RFC 1/7] virtio: relax feature check, Cornelia Huck, 2015/05/12
- Re: [Qemu-devel] [PATCH RFC 1/7] virtio: relax feature check, Cornelia Huck, 2015/05/12
- Re: [Qemu-devel] [PATCH RFC 1/7] virtio: relax feature check, Michael S. Tsirkin, 2015/05/12
- Re: [Qemu-devel] [PATCH RFC 1/7] virtio: relax feature check, Cornelia Huck, 2015/05/12
- Re: [Qemu-devel] [PATCH RFC 1/7] virtio: relax feature check, Greg Kurz, 2015/05/12
- Re: [Qemu-devel] [PATCH RFC 1/7] virtio: relax feature check, Peter Maydell, 2015/05/12
[Qemu-devel] [PATCH RFC 3/7] virtio: introduce virtio_legacy_is_cross_endian(), Greg Kurz, 2015/05/06
[Qemu-devel] [PATCH RFC 5/7] tap: add VNET_LE/VNET_BE operations, Greg Kurz, 2015/05/06
[Qemu-devel] [PATCH RFC 4/7] vhost: set vring endianness for legacy virtio, Greg Kurz, 2015/05/06
- Re: [Qemu-devel] [PATCH RFC 4/7] vhost: set vring endianness for legacy virtio,
Cornelia Huck <=
- Re: [Qemu-devel] [PATCH RFC 4/7] vhost: set vring endianness for legacy virtio, Michael S. Tsirkin, 2015/05/12
- Re: [Qemu-devel] [PATCH RFC 4/7] vhost: set vring endianness for legacy virtio, Cornelia Huck, 2015/05/12
- Re: [Qemu-devel] [PATCH RFC 4/7] vhost: set vring endianness for legacy virtio, Michael S. Tsirkin, 2015/05/12
- Re: [Qemu-devel] [PATCH RFC 4/7] vhost: set vring endianness for legacy virtio, Cornelia Huck, 2015/05/13
- Re: [Qemu-devel] [PATCH RFC 4/7] vhost: set vring endianness for legacy virtio, Michael S. Tsirkin, 2015/05/13
[Qemu-devel] [PATCH RFC 6/7] vhost-net: tell tap backend about the vnet endianness, Greg Kurz, 2015/05/06
[Qemu-devel] [PATCH RFC 7/7] vhost_net: re-enable when cross endian, Greg Kurz, 2015/05/06