2751c9882b
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 <gkurz@linux.vnet.ibm.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
50 lines
1.4 KiB
Plaintext
50 lines
1.4 KiB
Plaintext
config VHOST_NET
|
|
tristate "Host kernel accelerator for virtio net"
|
|
depends on NET && EVENTFD && (TUN || !TUN) && (MACVTAP || !MACVTAP)
|
|
select VHOST
|
|
select VHOST_RING
|
|
---help---
|
|
This kernel module can be loaded in host kernel to accelerate
|
|
guest networking with virtio_net. Not to be confused with virtio_net
|
|
module itself which needs to be loaded in guest kernel.
|
|
|
|
To compile this driver as a module, choose M here: the module will
|
|
be called vhost_net.
|
|
|
|
config VHOST_SCSI
|
|
tristate "VHOST_SCSI TCM fabric driver"
|
|
depends on TARGET_CORE && EVENTFD && m
|
|
select VHOST
|
|
select VHOST_RING
|
|
default n
|
|
---help---
|
|
Say M here to enable the vhost_scsi TCM fabric module
|
|
for use with virtio-scsi guests
|
|
|
|
config VHOST_RING
|
|
tristate
|
|
---help---
|
|
This option is selected by any driver which needs to access
|
|
the host side of a virtio ring.
|
|
|
|
config VHOST
|
|
tristate
|
|
---help---
|
|
This option is selected by any driver which needs to access
|
|
the core of vhost.
|
|
|
|
config VHOST_CROSS_ENDIAN_LEGACY
|
|
bool "Cross-endian support for vhost"
|
|
default n
|
|
---help---
|
|
This option allows vhost to support guests with a different byte
|
|
ordering from host while using legacy virtio.
|
|
|
|
Userspace programs can control the feature using the
|
|
VHOST_SET_VRING_ENDIAN and VHOST_GET_VRING_ENDIAN ioctls.
|
|
|
|
This is only useful on a few platforms (ppc64 and arm64). Since it
|
|
adds some overhead, it is disabled by default.
|
|
|
|
If unsure, say "N".
|