[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 3/5] virtio: move cross-endian helper to vhos
From: |
Laurent Vivier |
Subject: |
Re: [Qemu-devel] [PATCH v2 3/5] virtio: move cross-endian helper to vhost |
Date: |
Tue, 12 Jan 2016 01:33:28 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 |
On 11/01/2016 17:13, Greg Kurz wrote:
> If target is bi-endian (ppc64, arm), the virtio_legacy_is_cross_endian()
> indeed returns the runtime state of the virtio device. However, it returns
> false unconditionally in the general case. This sounds a bit strange
> given the name of the function.
>
> This helper is only useful for vhost actually, where indeed non bi-endian
> targets don't have to deal with cross-endian issues.
>
> This patch moves the helper to vhost.c and gives it a more appropriate name.
>
> Signed-off-by: Greg Kurz <address@hidden>
> Reviewed-by: Cornelia Huck <address@hidden>
> ---
> hw/virtio/vhost.c | 17 +++++++++++++++--
> include/hw/virtio/virtio-access.h | 13 -------------
> 2 files changed, 15 insertions(+), 15 deletions(-)
>
> diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
> index de29968a7945..2e1e792d599e 100644
> --- a/hw/virtio/vhost.c
> +++ b/hw/virtio/vhost.c
> @@ -748,6 +748,19 @@ static void vhost_log_stop(MemoryListener *listener,
> /* FIXME: implement */
> }
>
> +static inline bool vhost_needs_vring_endian(VirtIODevice *vdev)
> +{
> +#ifdef TARGET_IS_BIENDIAN
> +#ifdef HOST_WORDS_BIGENDIAN
> + return !virtio_is_big_endian(vdev);
> +#else
> + return virtio_is_big_endian(vdev);
> +#endif
> +#else
> + return false;
> +#endif
> +}
> +
> static int vhost_virtqueue_set_vring_endian_legacy(struct vhost_dev *dev,
> bool is_big_endian,
> int vhost_vq_index)
> @@ -799,7 +812,7 @@ static int vhost_virtqueue_start(struct vhost_dev *dev,
> }
>
> if (!virtio_vdev_has_feature(vdev, VIRTIO_F_VERSION_1) &&
> - virtio_legacy_is_cross_endian(vdev)) {
> + vhost_needs_vring_endian(vdev)) {
> r = vhost_virtqueue_set_vring_endian_legacy(dev,
>
> virtio_is_big_endian(vdev),
> vhost_vq_index);
> @@ -896,7 +909,7 @@ static void vhost_virtqueue_stop(struct vhost_dev *dev,
> * native as legacy devices expect so by default.
> */
> if (!virtio_vdev_has_feature(vdev, VIRTIO_F_VERSION_1) &&
> - virtio_legacy_is_cross_endian(vdev)) {
> + vhost_needs_vring_endian(vdev)) {
> r = vhost_virtqueue_set_vring_endian_legacy(dev,
>
> !virtio_is_big_endian(vdev),
> vhost_vq_index);
> diff --git a/include/hw/virtio/virtio-access.h
> b/include/hw/virtio/virtio-access.h
> index a01fff2e51d7..f1f12afe9089 100644
> --- a/include/hw/virtio/virtio-access.h
> +++ b/include/hw/virtio/virtio-access.h
> @@ -32,19 +32,6 @@ static inline bool
> virtio_access_is_big_endian(VirtIODevice *vdev)
> #endif
> }
>
> -static inline bool virtio_legacy_is_cross_endian(VirtIODevice *vdev)
> -{
> -#ifdef TARGET_IS_BIENDIAN
> -#ifdef HOST_WORDS_BIGENDIAN
> - return !virtio_is_big_endian(vdev);
> -#else
> - return virtio_is_big_endian(vdev);
> -#endif
> -#else
> - return false;
> -#endif
> -}
> -
> static inline uint16_t virtio_lduw_phys(VirtIODevice *vdev, hwaddr pa)
> {
> if (virtio_access_is_big_endian(vdev)) {
>
>
Reviewed-by: Laurent Vivier <address@hidden>
- [Qemu-devel] [PATCH v2 1/5] virtio-net: use the backend cross-endian capabilities, (continued)
- [Qemu-devel] [PATCH v2 1/5] virtio-net: use the backend cross-endian capabilities, Greg Kurz, 2016/01/11
- Re: [Qemu-devel] [PATCH v2 1/5] virtio-net: use the backend cross-endian capabilities, Cornelia Huck, 2016/01/11
- Re: [Qemu-devel] [PATCH v2 1/5] virtio-net: use the backend cross-endian capabilities, Laurent Vivier, 2016/01/11
- Re: [Qemu-devel] [PATCH v2 1/5] virtio-net: use the backend cross-endian capabilities, Laurent Vivier, 2016/01/12
- Re: [Qemu-devel] [PATCH v2 1/5] virtio-net: use the backend cross-endian capabilities, Greg Kurz, 2016/01/13
- Re: [Qemu-devel] [PATCH v2 1/5] virtio-net: use the backend cross-endian capabilities, Laurent Vivier, 2016/01/13
- Re: [Qemu-devel] [PATCH v2 1/5] virtio-net: use the backend cross-endian capabilities, Greg Kurz, 2016/01/13
[Qemu-devel] [PATCH v2 2/5] Revert "vhost-net: tell tap backend about the vnet endianness", Greg Kurz, 2016/01/11
[Qemu-devel] [PATCH v2 3/5] virtio: move cross-endian helper to vhost, Greg Kurz, 2016/01/11
- Re: [Qemu-devel] [PATCH v2 3/5] virtio: move cross-endian helper to vhost,
Laurent Vivier <=
[Qemu-devel] [PATCH v2 4/5] vhost: move virtio 1.0 check to cross-endian helper, Greg Kurz, 2016/01/11
[Qemu-devel] [PATCH v2 5/5] virtio: optimize virtio_access_is_big_endian() for little-endian targets, Greg Kurz, 2016/01/11