From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46519) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aImtw-0007cp-W1 for qemu-devel@nongnu.org; Mon, 11 Jan 2016 19:33:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aImtv-0007li-34 for qemu-devel@nongnu.org; Mon, 11 Jan 2016 19:33:32 -0500 Received: from mx1.redhat.com ([209.132.183.28]:52635) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aImtu-0007lc-Rz for qemu-devel@nongnu.org; Mon, 11 Jan 2016 19:33:31 -0500 References: <20160111161156.17428.20668.stgit@bahia.huguette.org> <20160111161256.17428.66591.stgit@bahia.huguette.org> From: Laurent Vivier Message-ID: <569449D8.1000109@redhat.com> Date: Tue, 12 Jan 2016 01:33:28 +0100 MIME-Version: 1.0 In-Reply-To: <20160111161256.17428.66591.stgit@bahia.huguette.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 3/5] virtio: move cross-endian helper to vhost List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Greg Kurz , "Michael S. Tsirkin" Cc: qemu-devel@nongnu.org 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 > Reviewed-by: Cornelia Huck > --- > 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