Thread (32 messages) 32 messages, 5 authors, 2015-06-01

Re: [PATCH v6 7/8] vhost: cross-endian support for legacy devices

From: Cornelia Huck <hidden>
Date: 2015-04-27 09:17:38
Also in: kvm, lkml

On Fri, 24 Apr 2015 14:27:24 +0200
Greg Kurz [off-list ref] wrote:
This patch brings cross-endian support to vhost when used to implement
legacy virtio devices. Since it is a relatively rare situation, the
feature availability is controlled by a kernel config option (not set
by default).

The vq->is_le boolean field is added to cache the endianness to be
used for ring accesses. It defaults to native endian, as expected
by legacy virtio devices. When the ring gets active, we force little
endian if the device is modern. When the ring is deactivated, we
revert to the native endian default.

If cross-endian was compiled in, a vq->user_be boolean field is added
so that userspace may request a specific endianness. This field is
used to override the default when activating the ring of a legacy
device. It has no effect on modern devices.

Signed-off-by: Greg Kurz <redacted>
---

Changes since v5:
- fixed description in Kconfig
- fixed error description in uapi header
- dropped useless semi-colon in the vhost_vq_reset_user_be() stub

 drivers/vhost/Kconfig      |   15 ++++++++
 drivers/vhost/vhost.c      |   85 +++++++++++++++++++++++++++++++++++++++++++-
 drivers/vhost/vhost.h      |   11 +++++-
 include/uapi/linux/vhost.h |   14 +++++++
 4 files changed, 122 insertions(+), 3 deletions(-)
Reviewed-by: Cornelia Huck <redacted>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help