vhost: refine vhost and vringh kconfig
authorJason Wang <jasowang@redhat.com>
Thu, 26 Mar 2020 14:01:17 +0000 (22:01 +0800)
committerMichael S. Tsirkin <mst@redhat.com>
Wed, 1 Apr 2020 16:06:26 +0000 (12:06 -0400)
Currently, CONFIG_VHOST depends on CONFIG_VIRTUALIZATION. But vhost is
not necessarily for VM since it's a generic userspace and kernel
communication protocol. Such dependency may prevent archs without
virtualization support from using vhost.

To solve this, a dedicated vhost menu is created under drivers so
CONIFG_VHOST can be decoupled out of CONFIG_VIRTUALIZATION.

While at it, also squash Kconfig.vringh into vhost Kconfig file. This
avoids the trick of conditional inclusion from VOP or CAIF. Then it
will be easier to introduce new vringh users and common dependency for
both vringh and vhost.

Signed-off-by: Jason Wang <jasowang@redhat.com>
Link: https://lore.kernel.org/r/20200326140125.19794-2-jasowang@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
arch/arm/kvm/Kconfig
arch/arm64/kvm/Kconfig
arch/mips/kvm/Kconfig
arch/powerpc/kvm/Kconfig
arch/s390/kvm/Kconfig
arch/x86/kvm/Kconfig
drivers/Kconfig
drivers/misc/mic/Kconfig
drivers/net/caif/Kconfig
drivers/vhost/Kconfig
drivers/vhost/Kconfig.vringh [deleted file]

index f591026347a5083b58c4c97dcec052026c337b7e..be97393761bfdc657d48866e35fe47d4986a1c18 100644 (file)
@@ -54,6 +54,4 @@ config KVM_ARM_HOST
        ---help---
          Provides host support for ARM processors.
 
-source "drivers/vhost/Kconfig"
-
 endif # VIRTUALIZATION
index a475c68cbfecb78436147618651380a98b0be32a..449386d76441d222770bc7d9156633b24b61cfe9 100644 (file)
@@ -64,6 +64,4 @@ config KVM_ARM_PMU
 config KVM_INDIRECT_VECTORS
        def_bool KVM && (HARDEN_BRANCH_PREDICTOR || HARDEN_EL2_VECTORS)
 
-source "drivers/vhost/Kconfig"
-
 endif # VIRTUALIZATION
index eac25aef21e03dd85fa1d64bdcf2b138cdfaaa2a..b91d145aa2d57eaeb074bdc9d1ed0a8f5564caaf 100644 (file)
@@ -72,6 +72,4 @@ config KVM_MIPS_DEBUG_COP0_COUNTERS
 
          If unsure, say N.
 
-source "drivers/vhost/Kconfig"
-
 endif # VIRTUALIZATION
index 711fca9bc6f0c216edd3286a03b2e6cb77cf6550..12885eda324e484e81f6e1282475c93c62b44f5e 100644 (file)
@@ -204,6 +204,4 @@ config KVM_XIVE
        default y
        depends on KVM_XICS && PPC_XIVE_NATIVE && KVM_BOOK3S_HV_POSSIBLE
 
-source "drivers/vhost/Kconfig"
-
 endif # VIRTUALIZATION
index d3db3d7ed077207fc39aac003c33ea117254b20f..def3b60f1fe8343e61deb146197da21eff709d1a 100644 (file)
@@ -55,8 +55,4 @@ config KVM_S390_UCONTROL
 
          If unsure, say N.
 
-# OK, it's a little counter-intuitive to do this, but it puts it neatly under
-# the virtualization menu.
-source "drivers/vhost/Kconfig"
-
 endif # VIRTUALIZATION
index 9fea0757db9226653c611233470ae092fda6e762..d8154e0684b6ea4b76612d99dbb612fed868b60d 100644 (file)
@@ -107,8 +107,4 @@ config KVM_MMU_AUDIT
         This option adds a R/W kVM module parameter 'mmu_audit', which allows
         auditing of KVM MMU events at runtime.
 
-# OK, it's a little counter-intuitive to do this, but it puts it neatly under
-# the virtualization menu.
-source "drivers/vhost/Kconfig"
-
 endif # VIRTUALIZATION
index 8befa53f43beb57babb2919b5e1bd0a0eda31e0f..7a6d8b2b68b47e9497052095b7f0db70b31aa490 100644 (file)
@@ -138,6 +138,8 @@ source "drivers/virt/Kconfig"
 
 source "drivers/virtio/Kconfig"
 
+source "drivers/vhost/Kconfig"
+
 source "drivers/hv/Kconfig"
 
 source "drivers/xen/Kconfig"
index b6841ba6d92258ae188308f7b2c9e7a441e97e5e..8f201d019f5a4d072255284d31f73c450786c4ef 100644 (file)
@@ -133,8 +133,4 @@ config VOP
          OS and tools for MIC to use with this driver are available from
          <http://software.intel.com/en-us/mic-developer>.
 
-if VOP
-source "drivers/vhost/Kconfig.vringh"
-endif
-
 endmenu
index e74e2bb6123678eb6898ebb5958d5eda9d6ebfed..9db0570c5bebbeb0dad6b1097bb4aae6c6dcd233 100644 (file)
@@ -58,8 +58,4 @@ config CAIF_VIRTIO
        ---help---
          The CAIF driver for CAIF over Virtio.
 
-if CAIF_VIRTIO
-source "drivers/vhost/Kconfig.vringh"
-endif
-
 endif # CAIF_DRIVERS
index 3d03ccbd1adce3e654b1e906f86193953c596364..e775beddc36adb134c8711d667acbfd5e674d1e4 100644 (file)
@@ -1,4 +1,23 @@
 # SPDX-License-Identifier: GPL-2.0-only
+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
+       select VHOST_IOTLB
+       help
+         This option is selected by any driver which needs to access
+         the core of vhost.
+
+menuconfig VHOST_MENU
+       bool "VHOST drivers"
+       default y
+
+if VHOST_MENU
+
 config VHOST_NET
        tristate "Host kernel accelerator for virtio net"
        depends on NET && EVENTFD && (TUN || !TUN) && (TAP || !TAP)
@@ -23,8 +42,8 @@ config VHOST_SCSI
 config VHOST_VSOCK
        tristate "vhost virtio-vsock driver"
        depends on VSOCKETS && EVENTFD
-       select VIRTIO_VSOCKETS_COMMON
        select VHOST
+       select VIRTIO_VSOCKETS_COMMON
        default n
        ---help---
        This kernel module can be loaded in the host kernel to provide AF_VSOCK
@@ -34,12 +53,6 @@ config VHOST_VSOCK
        To compile this driver as a module, choose M here: the module will be called
        vhost_vsock.
 
-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
@@ -54,3 +67,4 @@ config VHOST_CROSS_ENDIAN_LEGACY
          adds some overhead, it is disabled by default.
 
          If unsure, say "N".
+endif
diff --git a/drivers/vhost/Kconfig.vringh b/drivers/vhost/Kconfig.vringh
deleted file mode 100644 (file)
index c1fe36a..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-config VHOST_RING
-       tristate
-       ---help---
-         This option is selected by any driver which needs to access
-         the host side of a virtio ring.