1# SPDX-License-Identifier: GPL-2.0-only
2config VHOST_IOTLB
3	tristate
4	help
5	  Generic IOTLB implementation for vhost and vringh.
6	  This option is selected by any driver which needs to support
7	  an IOMMU in software.
8
9config VHOST_RING
10	tristate
11	select VHOST_IOTLB
12	help
13	  This option is selected by any driver which needs to access
14	  the host side of a virtio ring.
15
16config VHOST_TASK
17	bool
18	default n
19
20config VHOST
21	tristate
22	select VHOST_IOTLB
23	select VHOST_TASK
24	help
25	  This option is selected by any driver which needs to access
26	  the core of vhost.
27
28menuconfig VHOST_MENU
29	bool "VHOST drivers"
30	default y
31
32if VHOST_MENU
33
34config VHOST_NET
35	tristate "Host kernel accelerator for virtio net"
36	depends on NET && EVENTFD && (TUN || !TUN) && (TAP || !TAP)
37	select VHOST
38	help
39	  This kernel module can be loaded in host kernel to accelerate
40	  guest networking with virtio_net. Not to be confused with virtio_net
41	  module itself which needs to be loaded in guest kernel.
42
43	  To compile this driver as a module, choose M here: the module will
44	  be called vhost_net.
45
46config VHOST_SCSI
47	tristate "VHOST_SCSI TCM fabric driver"
48	depends on TARGET_CORE && EVENTFD
49	select VHOST
50	default n
51	help
52	Say M here to enable the vhost_scsi TCM fabric module
53	for use with virtio-scsi guests
54
55config VHOST_VSOCK
56	tristate "vhost virtio-vsock driver"
57	depends on VSOCKETS && EVENTFD
58	select VHOST
59	select VIRTIO_VSOCKETS_COMMON
60	default n
61	help
62	This kernel module can be loaded in the host kernel to provide AF_VSOCK
63	sockets for communicating with guests.  The guests must have the
64	virtio_transport.ko driver loaded to use the virtio-vsock device.
65
66	To compile this driver as a module, choose M here: the module will be called
67	vhost_vsock.
68
69config VHOST_VDPA
70	tristate "Vhost driver for vDPA-based backend"
71	depends on EVENTFD
72	select VHOST
73	select IRQ_BYPASS_MANAGER
74	depends on VDPA
75	help
76	  This kernel module can be loaded in host kernel to accelerate
77	  guest virtio devices with the vDPA-based backends.
78
79	  To compile this driver as a module, choose M here: the module
80	  will be called vhost_vdpa.
81
82config VHOST_CROSS_ENDIAN_LEGACY
83	bool "Cross-endian support for vhost"
84	default n
85	help
86	  This option allows vhost to support guests with a different byte
87	  ordering from host while using legacy virtio.
88
89	  Userspace programs can control the feature using the
90	  VHOST_SET_VRING_ENDIAN and VHOST_GET_VRING_ENDIAN ioctls.
91
92	  This is only useful on a few platforms (ppc64 and arm64). Since it
93	  adds some overhead, it is disabled by default.
94
95	  If unsure, say "N".
96
97endif
98