Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Drivers: hv: Add CONFIG_HYPERV_VMBUS option

At present VMBus driver is hinged off of CONFIG_HYPERV which entails
lot of builtin code and encompasses too much. It's not always clear
what depends on builtin hv code and what depends on VMBus. Setting
CONFIG_HYPERV as a module and fudging the Makefile to switch to builtin
adds even more confusion. VMBus is an independent module and should have
its own config option. Also, there are scenarios like baremetal dom0/root
where support is built in with CONFIG_HYPERV but without VMBus. Lastly,
there are more features coming down that use CONFIG_HYPERV and add more
dependencies on it.

So, create a fine grained HYPERV_VMBUS option and update Kconfigs for
dependency on VMBus.

Signed-off-by: Mukesh Rathor <mrathor@linux.microsoft.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com> # drivers/pci
Signed-off-by: Wei Liu <wei.liu@kernel.org>

authored by

Mukesh Rathor and committed by
Wei Liu
94b04355 a3a4d6cb

+25 -16
+1 -1
drivers/gpu/drm/Kconfig
··· 398 398 399 399 config DRM_HYPERV 400 400 tristate "DRM Support for Hyper-V synthetic video device" 401 - depends on DRM && PCI && HYPERV 401 + depends on DRM && PCI && HYPERV_VMBUS 402 402 select DRM_CLIENT_SELECTION 403 403 select DRM_KMS_HELPER 404 404 select DRM_GEM_SHMEM_HELPER
+1 -1
drivers/hid/Kconfig
··· 1162 1162 1163 1163 config HID_HYPERV_MOUSE 1164 1164 tristate "Microsoft Hyper-V mouse driver" 1165 - depends on HYPERV 1165 + depends on HYPERV_VMBUS 1166 1166 help 1167 1167 Select this option to enable the Hyper-V mouse driver. 1168 1168
+9 -2
drivers/hv/Kconfig
··· 45 45 46 46 config HYPERV_UTILS 47 47 tristate "Microsoft Hyper-V Utilities driver" 48 - depends on HYPERV && CONNECTOR && NLS 48 + depends on HYPERV_VMBUS && CONNECTOR && NLS 49 49 depends on PTP_1588_CLOCK_OPTIONAL 50 50 help 51 51 Select this option to enable the Hyper-V Utilities. 52 52 53 53 config HYPERV_BALLOON 54 54 tristate "Microsoft Hyper-V Balloon driver" 55 - depends on HYPERV 55 + depends on HYPERV_VMBUS 56 56 select PAGE_REPORTING 57 57 help 58 58 Select this option to enable Hyper-V Balloon driver. 59 + 60 + config HYPERV_VMBUS 61 + tristate "Microsoft Hyper-V VMBus driver" 62 + depends on HYPERV 63 + default HYPERV 64 + help 65 + Select this option to enable Hyper-V Vmbus driver. 59 66 60 67 config MSHV_ROOT 61 68 tristate "Microsoft Hyper-V root partition support"
+1 -1
drivers/hv/Makefile
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 - obj-$(CONFIG_HYPERV) += hv_vmbus.o 2 + obj-$(CONFIG_HYPERV_VMBUS) += hv_vmbus.o 3 3 obj-$(CONFIG_HYPERV_UTILS) += hv_utils.o 4 4 obj-$(CONFIG_HYPERV_BALLOON) += hv_balloon.o 5 5 obj-$(CONFIG_MSHV_ROOT) += mshv_root.o
+2 -2
drivers/input/serio/Kconfig
··· 276 276 277 277 config HYPERV_KEYBOARD 278 278 tristate "Microsoft Synthetic Keyboard driver" 279 - depends on HYPERV 280 - default HYPERV 279 + depends on HYPERV_VMBUS 280 + default HYPERV_VMBUS 281 281 help 282 282 Select this option to enable the Hyper-V Keyboard driver. 283 283
+1 -1
drivers/net/hyperv/Kconfig
··· 1 1 # SPDX-License-Identifier: GPL-2.0-only 2 2 config HYPERV_NET 3 3 tristate "Microsoft Hyper-V virtual network driver" 4 - depends on HYPERV 4 + depends on HYPERV_VMBUS 5 5 select UCS2_STRING 6 6 select NLS 7 7 help
+1 -1
drivers/pci/Kconfig
··· 221 221 222 222 config PCI_HYPERV 223 223 tristate "Hyper-V PCI Frontend" 224 - depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI && SYSFS 224 + depends on ((X86 && X86_64) || ARM64) && HYPERV_VMBUS && PCI_MSI && SYSFS 225 225 select PCI_HYPERV_INTERFACE 226 226 select IRQ_MSI_LIB 227 227 help
+1 -1
drivers/scsi/Kconfig
··· 589 589 590 590 config HYPERV_STORAGE 591 591 tristate "Microsoft Hyper-V virtual storage driver" 592 - depends on SCSI && HYPERV 592 + depends on SCSI && HYPERV_VMBUS 593 593 depends on m || SCSI_FC_ATTRS != m 594 594 default HYPERV 595 595 help
+1 -1
drivers/uio/Kconfig
··· 140 140 141 141 config UIO_HV_GENERIC 142 142 tristate "Generic driver for Hyper-V VMBus" 143 - depends on HYPERV 143 + depends on HYPERV_VMBUS 144 144 help 145 145 Generic driver that you can bind, dynamically, to any 146 146 Hyper-V VMBus device. It is useful to provide direct access
+1 -1
drivers/video/fbdev/Kconfig
··· 1774 1774 1775 1775 config FB_HYPERV 1776 1776 tristate "Microsoft Hyper-V Synthetic Video support" 1777 - depends on FB && HYPERV 1777 + depends on FB && HYPERV_VMBUS 1778 1778 select DMA_CMA if HAVE_DMA_CONTIGUOUS && CMA 1779 1779 select FB_IOMEM_HELPERS_DEFERRED 1780 1780 help
+5 -3
include/asm-generic/mshyperv.h
··· 163 163 return guest_id; 164 164 } 165 165 166 + #if IS_ENABLED(CONFIG_HYPERV_VMBUS) 166 167 /* Free the message slot and signal end-of-message if required */ 167 168 static inline void vmbus_signal_eom(struct hv_message *msg, u32 old_msg_type) 168 169 { ··· 199 198 } 200 199 } 201 200 201 + extern int vmbus_interrupt; 202 + extern int vmbus_irq; 203 + #endif /* CONFIG_HYPERV_VMBUS */ 204 + 202 205 int hv_get_hypervisor_version(union hv_hypervisor_version_info *info); 203 206 204 207 void hv_setup_vmbus_handler(void (*handler)(void)); ··· 215 210 void hv_setup_crash_handler(void (*handler)(struct pt_regs *regs)); 216 211 void hv_remove_crash_handler(void); 217 212 void hv_setup_mshv_handler(void (*handler)(void)); 218 - 219 - extern int vmbus_interrupt; 220 - extern int vmbus_irq; 221 213 222 214 #if IS_ENABLED(CONFIG_HYPERV) 223 215 /*
+1 -1
net/vmw_vsock/Kconfig
··· 72 72 73 73 config HYPERV_VSOCKETS 74 74 tristate "Hyper-V transport for Virtual Sockets" 75 - depends on VSOCKETS && HYPERV 75 + depends on VSOCKETS && HYPERV_VMBUS 76 76 help 77 77 This module implements a Hyper-V transport for Virtual Sockets. 78 78