Skip to content

Commit e407f39

Browse files
mstsirkindavem330
authored andcommitted
vhost: fix performance on LE hosts
commit 2751c98 ("vhost: cross-endian support for legacy devices") introduced a minor regression: even with cross-endian disabled, and even on LE host, vhost_is_little_endian is checking is_le flag so there's always a branch. To fix, simply check virtio_legacy_is_little_endian first. Cc: Greg Kurz <gkurz@linux.vnet.ibm.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Greg Kurz <gkurz@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 85ff8a4 commit e407f39

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

drivers/vhost/vhost.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,10 +183,17 @@ static inline bool vhost_has_feature(struct vhost_virtqueue *vq, int bit)
183183
return vq->acked_features & (1ULL << bit);
184184
}
185185

186+
#ifdef CONFIG_VHOST_CROSS_ENDIAN_LEGACY
186187
static inline bool vhost_is_little_endian(struct vhost_virtqueue *vq)
187188
{
188189
return vq->is_le;
189190
}
191+
#else
192+
static inline bool vhost_is_little_endian(struct vhost_virtqueue *vq)
193+
{
194+
return virtio_legacy_is_little_endian() || vq->is_le;
195+
}
196+
#endif
190197

191198
/* Memory accessors */
192199
static inline u16 vhost16_to_cpu(struct vhost_virtqueue *vq, __virtio16 val)

0 commit comments

Comments
 (0)