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>
This commit is contained in:
parent
a3a4d6cb0b
commit
94b04355e6
|
@ -398,7 +398,7 @@ source "drivers/gpu/drm/imagination/Kconfig"
|
|||
|
||||
config DRM_HYPERV
|
||||
tristate "DRM Support for Hyper-V synthetic video device"
|
||||
depends on DRM && PCI && HYPERV
|
||||
depends on DRM && PCI && HYPERV_VMBUS
|
||||
select DRM_CLIENT_SELECTION
|
||||
select DRM_KMS_HELPER
|
||||
select DRM_GEM_SHMEM_HELPER
|
||||
|
|
|
@ -1162,7 +1162,7 @@ config GREENASIA_FF
|
|||
|
||||
config HID_HYPERV_MOUSE
|
||||
tristate "Microsoft Hyper-V mouse driver"
|
||||
depends on HYPERV
|
||||
depends on HYPERV_VMBUS
|
||||
help
|
||||
Select this option to enable the Hyper-V mouse driver.
|
||||
|
||||
|
|
|
@ -45,18 +45,25 @@ config HYPERV_TIMER
|
|||
|
||||
config HYPERV_UTILS
|
||||
tristate "Microsoft Hyper-V Utilities driver"
|
||||
depends on HYPERV && CONNECTOR && NLS
|
||||
depends on HYPERV_VMBUS && CONNECTOR && NLS
|
||||
depends on PTP_1588_CLOCK_OPTIONAL
|
||||
help
|
||||
Select this option to enable the Hyper-V Utilities.
|
||||
|
||||
config HYPERV_BALLOON
|
||||
tristate "Microsoft Hyper-V Balloon driver"
|
||||
depends on HYPERV
|
||||
depends on HYPERV_VMBUS
|
||||
select PAGE_REPORTING
|
||||
help
|
||||
Select this option to enable Hyper-V Balloon driver.
|
||||
|
||||
config HYPERV_VMBUS
|
||||
tristate "Microsoft Hyper-V VMBus driver"
|
||||
depends on HYPERV
|
||||
default HYPERV
|
||||
help
|
||||
Select this option to enable Hyper-V Vmbus driver.
|
||||
|
||||
config MSHV_ROOT
|
||||
tristate "Microsoft Hyper-V root partition support"
|
||||
depends on HYPERV && (X86_64 || ARM64)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
obj-$(CONFIG_HYPERV) += hv_vmbus.o
|
||||
obj-$(CONFIG_HYPERV_VMBUS) += hv_vmbus.o
|
||||
obj-$(CONFIG_HYPERV_UTILS) += hv_utils.o
|
||||
obj-$(CONFIG_HYPERV_BALLOON) += hv_balloon.o
|
||||
obj-$(CONFIG_MSHV_ROOT) += mshv_root.o
|
||||
|
|
|
@ -276,8 +276,8 @@ config SERIO_OLPC_APSP
|
|||
|
||||
config HYPERV_KEYBOARD
|
||||
tristate "Microsoft Synthetic Keyboard driver"
|
||||
depends on HYPERV
|
||||
default HYPERV
|
||||
depends on HYPERV_VMBUS
|
||||
default HYPERV_VMBUS
|
||||
help
|
||||
Select this option to enable the Hyper-V Keyboard driver.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
config HYPERV_NET
|
||||
tristate "Microsoft Hyper-V virtual network driver"
|
||||
depends on HYPERV
|
||||
depends on HYPERV_VMBUS
|
||||
select UCS2_STRING
|
||||
select NLS
|
||||
help
|
||||
|
|
|
@ -221,7 +221,7 @@ config PCI_LABEL
|
|||
|
||||
config PCI_HYPERV
|
||||
tristate "Hyper-V PCI Frontend"
|
||||
depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI && SYSFS
|
||||
depends on ((X86 && X86_64) || ARM64) && HYPERV_VMBUS && PCI_MSI && SYSFS
|
||||
select PCI_HYPERV_INTERFACE
|
||||
select IRQ_MSI_LIB
|
||||
help
|
||||
|
|
|
@ -589,7 +589,7 @@ config XEN_SCSI_FRONTEND
|
|||
|
||||
config HYPERV_STORAGE
|
||||
tristate "Microsoft Hyper-V virtual storage driver"
|
||||
depends on SCSI && HYPERV
|
||||
depends on SCSI && HYPERV_VMBUS
|
||||
depends on m || SCSI_FC_ATTRS != m
|
||||
default HYPERV
|
||||
help
|
||||
|
|
|
@ -140,7 +140,7 @@ config UIO_MF624
|
|||
|
||||
config UIO_HV_GENERIC
|
||||
tristate "Generic driver for Hyper-V VMBus"
|
||||
depends on HYPERV
|
||||
depends on HYPERV_VMBUS
|
||||
help
|
||||
Generic driver that you can bind, dynamically, to any
|
||||
Hyper-V VMBus device. It is useful to provide direct access
|
||||
|
|
|
@ -1774,7 +1774,7 @@ config FB_BROADSHEET
|
|||
|
||||
config FB_HYPERV
|
||||
tristate "Microsoft Hyper-V Synthetic Video support"
|
||||
depends on FB && HYPERV
|
||||
depends on FB && HYPERV_VMBUS
|
||||
select DMA_CMA if HAVE_DMA_CONTIGUOUS && CMA
|
||||
select FB_IOMEM_HELPERS_DEFERRED
|
||||
help
|
||||
|
|
|
@ -163,6 +163,7 @@ static inline u64 hv_generate_guest_id(u64 kernel_version)
|
|||
return guest_id;
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_HYPERV_VMBUS)
|
||||
/* Free the message slot and signal end-of-message if required */
|
||||
static inline void vmbus_signal_eom(struct hv_message *msg, u32 old_msg_type)
|
||||
{
|
||||
|
@ -198,6 +199,10 @@ static inline void vmbus_signal_eom(struct hv_message *msg, u32 old_msg_type)
|
|||
}
|
||||
}
|
||||
|
||||
extern int vmbus_interrupt;
|
||||
extern int vmbus_irq;
|
||||
#endif /* CONFIG_HYPERV_VMBUS */
|
||||
|
||||
int hv_get_hypervisor_version(union hv_hypervisor_version_info *info);
|
||||
|
||||
void hv_setup_vmbus_handler(void (*handler)(void));
|
||||
|
@ -211,9 +216,6 @@ void hv_setup_crash_handler(void (*handler)(struct pt_regs *regs));
|
|||
void hv_remove_crash_handler(void);
|
||||
void hv_setup_mshv_handler(void (*handler)(void));
|
||||
|
||||
extern int vmbus_interrupt;
|
||||
extern int vmbus_irq;
|
||||
|
||||
#if IS_ENABLED(CONFIG_HYPERV)
|
||||
/*
|
||||
* Hypervisor's notion of virtual processor ID is different from
|
||||
|
|
|
@ -72,7 +72,7 @@ config VIRTIO_VSOCKETS_COMMON
|
|||
|
||||
config HYPERV_VSOCKETS
|
||||
tristate "Hyper-V transport for Virtual Sockets"
|
||||
depends on VSOCKETS && HYPERV
|
||||
depends on VSOCKETS && HYPERV_VMBUS
|
||||
help
|
||||
This module implements a Hyper-V transport for Virtual Sockets.
|
||||
|
||||
|
|
Loading…
Reference in New Issue