mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 21:21:41 +00:00
Merge branch 'kvm-kconfig'
Cleanups to Kconfig definitions for KVM * replace HAVE_KVM with an architecture-dependent symbol, when CONFIG_KVM may or may not be available depending on CPU capabilities (MIPS) * replace HAVE_KVM with IS_ENABLED(CONFIG_KVM) for host-side code that is not part of the KVM module, so that it is completely compiled out * factor common "select" statements in common code instead of requiring each architecture to specify it
This commit is contained in:
commit
687d8f4c3d
@ -216,7 +216,6 @@ config ARM64
|
||||
select HAVE_HW_BREAKPOINT if PERF_EVENTS
|
||||
select HAVE_IOREMAP_PROT
|
||||
select HAVE_IRQ_TIME_ACCOUNTING
|
||||
select HAVE_KVM
|
||||
select HAVE_MOD_ARCH_SPECIFIC
|
||||
select HAVE_NMI
|
||||
select HAVE_PERF_EVENTS
|
||||
|
@ -20,7 +20,6 @@ if VIRTUALIZATION
|
||||
|
||||
menuconfig KVM
|
||||
bool "Kernel-based Virtual Machine (KVM) support"
|
||||
depends on HAVE_KVM
|
||||
select KVM_COMMON
|
||||
select KVM_GENERIC_HARDWARE_ENABLING
|
||||
select KVM_GENERIC_MMU_NOTIFIER
|
||||
@ -34,7 +33,6 @@ menuconfig KVM
|
||||
select HAVE_KVM_MSI
|
||||
select HAVE_KVM_IRQCHIP
|
||||
select HAVE_KVM_IRQ_ROUTING
|
||||
select IRQ_BYPASS_MANAGER
|
||||
select HAVE_KVM_IRQ_BYPASS
|
||||
select HAVE_KVM_READONLY_MEM
|
||||
select HAVE_KVM_VCPU_RUN_PID_CHANGE
|
||||
|
@ -133,7 +133,6 @@ config LOONGARCH
|
||||
select HAVE_KPROBES
|
||||
select HAVE_KPROBES_ON_FTRACE
|
||||
select HAVE_KRETPROBES
|
||||
select HAVE_KVM
|
||||
select HAVE_MOD_ARCH_SPECIFIC
|
||||
select HAVE_NMI
|
||||
select HAVE_PCI
|
||||
|
@ -20,7 +20,6 @@ if VIRTUALIZATION
|
||||
config KVM
|
||||
tristate "Kernel-based Virtual Machine (KVM) support"
|
||||
depends on AS_HAS_LVZ_EXTENSION
|
||||
depends on HAVE_KVM
|
||||
select HAVE_KVM_DIRTY_RING_ACQ_REL
|
||||
select HAVE_KVM_VCPU_ASYNC_IOCTL
|
||||
select KVM_COMMON
|
||||
|
@ -1250,6 +1250,7 @@ config CPU_LOONGSON64
|
||||
select CPU_SUPPORTS_HIGHMEM
|
||||
select CPU_SUPPORTS_HUGEPAGES
|
||||
select CPU_SUPPORTS_MSA
|
||||
select CPU_SUPPORTS_VZ
|
||||
select CPU_DIEI_BROKEN if !LOONGSON3_ENHANCEMENT
|
||||
select CPU_MIPSR2_IRQ_VI
|
||||
select DMA_NONCOHERENT
|
||||
@ -1261,7 +1262,6 @@ config CPU_LOONGSON64
|
||||
select MIPS_FP_SUPPORT
|
||||
select GPIOLIB
|
||||
select SWIOTLB
|
||||
select HAVE_KVM
|
||||
help
|
||||
The Loongson GSx64(GS264/GS464/GS464E/GS464V) series of processor
|
||||
cores implements the MIPS64R2 instruction set with many extensions,
|
||||
@ -1374,7 +1374,6 @@ config CPU_MIPS32_R2
|
||||
select CPU_SUPPORTS_32BIT_KERNEL
|
||||
select CPU_SUPPORTS_HIGHMEM
|
||||
select CPU_SUPPORTS_MSA
|
||||
select HAVE_KVM
|
||||
help
|
||||
Choose this option to build a kernel for release 2 or later of the
|
||||
MIPS32 architecture. Most modern embedded systems with a 32-bit
|
||||
@ -1389,7 +1388,7 @@ config CPU_MIPS32_R5
|
||||
select CPU_SUPPORTS_32BIT_KERNEL
|
||||
select CPU_SUPPORTS_HIGHMEM
|
||||
select CPU_SUPPORTS_MSA
|
||||
select HAVE_KVM
|
||||
select CPU_SUPPORTS_VZ
|
||||
select MIPS_O32_FP64_SUPPORT
|
||||
help
|
||||
Choose this option to build a kernel for release 5 or later of the
|
||||
@ -1405,7 +1404,7 @@ config CPU_MIPS32_R6
|
||||
select CPU_SUPPORTS_32BIT_KERNEL
|
||||
select CPU_SUPPORTS_HIGHMEM
|
||||
select CPU_SUPPORTS_MSA
|
||||
select HAVE_KVM
|
||||
select CPU_SUPPORTS_VZ
|
||||
select MIPS_O32_FP64_SUPPORT
|
||||
help
|
||||
Choose this option to build a kernel for release 6 or later of the
|
||||
@ -1441,7 +1440,6 @@ config CPU_MIPS64_R2
|
||||
select CPU_SUPPORTS_HIGHMEM
|
||||
select CPU_SUPPORTS_HUGEPAGES
|
||||
select CPU_SUPPORTS_MSA
|
||||
select HAVE_KVM
|
||||
help
|
||||
Choose this option to build a kernel for release 2 or later of the
|
||||
MIPS64 architecture. Many modern embedded systems with a 64-bit
|
||||
@ -1459,7 +1457,7 @@ config CPU_MIPS64_R5
|
||||
select CPU_SUPPORTS_HUGEPAGES
|
||||
select CPU_SUPPORTS_MSA
|
||||
select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
|
||||
select HAVE_KVM
|
||||
select CPU_SUPPORTS_VZ
|
||||
help
|
||||
Choose this option to build a kernel for release 5 or later of the
|
||||
MIPS64 architecture. This is a intermediate MIPS architecture
|
||||
@ -1477,7 +1475,7 @@ config CPU_MIPS64_R6
|
||||
select CPU_SUPPORTS_HUGEPAGES
|
||||
select CPU_SUPPORTS_MSA
|
||||
select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
|
||||
select HAVE_KVM
|
||||
select CPU_SUPPORTS_VZ
|
||||
help
|
||||
Choose this option to build a kernel for release 6 or later of the
|
||||
MIPS64 architecture. New MIPS processors, starting with the Warrior
|
||||
@ -1492,9 +1490,9 @@ config CPU_P5600
|
||||
select CPU_SUPPORTS_HIGHMEM
|
||||
select CPU_SUPPORTS_MSA
|
||||
select CPU_SUPPORTS_CPUFREQ
|
||||
select CPU_SUPPORTS_VZ
|
||||
select CPU_MIPSR2_IRQ_VI
|
||||
select CPU_MIPSR2_IRQ_EI
|
||||
select HAVE_KVM
|
||||
select MIPS_O32_FP64_SUPPORT
|
||||
help
|
||||
Choose this option to build a kernel for MIPS Warrior P5600 CPU.
|
||||
@ -1614,7 +1612,7 @@ config CPU_CAVIUM_OCTEON
|
||||
select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
|
||||
select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
|
||||
select MIPS_L1_CACHE_SHIFT_7
|
||||
select HAVE_KVM
|
||||
select CPU_SUPPORTS_VZ
|
||||
help
|
||||
The Cavium Octeon processor is a highly integrated chip containing
|
||||
many ethernet hardware widgets for networking tasks. The processor
|
||||
@ -1969,6 +1967,8 @@ config CPU_SUPPORTS_ADDRWINCFG
|
||||
config CPU_SUPPORTS_HUGEPAGES
|
||||
bool
|
||||
depends on !(32BIT && (PHYS_ADDR_T_64BIT || EVA))
|
||||
config CPU_SUPPORTS_VZ
|
||||
bool
|
||||
config MIPS_PGD_C0_CONTEXT
|
||||
bool
|
||||
depends on 64BIT
|
||||
|
@ -17,7 +17,7 @@ if VIRTUALIZATION
|
||||
|
||||
config KVM
|
||||
tristate "Kernel-based Virtual Machine (KVM) support"
|
||||
depends on HAVE_KVM
|
||||
depends on CPU_SUPPORTS_VZ
|
||||
depends on MIPS_FP_SUPPORT
|
||||
select EXPORT_UASM
|
||||
select KVM_COMMON
|
||||
|
@ -22,7 +22,6 @@ config KVM
|
||||
select KVM_COMMON
|
||||
select HAVE_KVM_VCPU_ASYNC_IOCTL
|
||||
select KVM_VFIO
|
||||
select IRQ_BYPASS_MANAGER
|
||||
select HAVE_KVM_IRQ_BYPASS
|
||||
|
||||
config KVM_BOOK3S_HANDLER
|
||||
|
@ -193,7 +193,6 @@ config S390
|
||||
select HAVE_KPROBES
|
||||
select HAVE_KPROBES_ON_FTRACE
|
||||
select HAVE_KRETPROBES
|
||||
select HAVE_KVM
|
||||
select HAVE_LIVEPATCH
|
||||
select HAVE_MEMBLOCK_PHYS_MAP
|
||||
select HAVE_MOD_ARCH_SPECIFIC
|
||||
|
@ -19,7 +19,6 @@ if VIRTUALIZATION
|
||||
config KVM
|
||||
def_tristate y
|
||||
prompt "Kernel-based Virtual Machine (KVM) support"
|
||||
depends on HAVE_KVM
|
||||
select HAVE_KVM_CPU_RELAX_INTERCEPT
|
||||
select HAVE_KVM_VCPU_ASYNC_IOCTL
|
||||
select KVM_ASYNC_PF
|
||||
|
@ -244,7 +244,6 @@ config X86
|
||||
select HAVE_FUNCTION_ERROR_INJECTION
|
||||
select HAVE_KRETPROBES
|
||||
select HAVE_RETHOOK
|
||||
select HAVE_KVM
|
||||
select HAVE_LIVEPATCH if X86_64
|
||||
select HAVE_MIXED_BREAKPOINTS_REGS
|
||||
select HAVE_MOD_ARCH_SPECIFIC
|
||||
|
@ -15,7 +15,7 @@ typedef struct {
|
||||
unsigned int irq_spurious_count;
|
||||
unsigned int icr_read_retry_count;
|
||||
#endif
|
||||
#ifdef CONFIG_HAVE_KVM
|
||||
#if IS_ENABLED(CONFIG_KVM)
|
||||
unsigned int kvm_posted_intr_ipis;
|
||||
unsigned int kvm_posted_intr_wakeup_ipis;
|
||||
unsigned int kvm_posted_intr_nested_ipis;
|
||||
|
@ -675,7 +675,7 @@ DECLARE_IDTENTRY_SYSVEC(IRQ_WORK_VECTOR, sysvec_irq_work);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_HAVE_KVM
|
||||
#if IS_ENABLED(CONFIG_KVM)
|
||||
DECLARE_IDTENTRY_SYSVEC(POSTED_INTR_VECTOR, sysvec_kvm_posted_intr_ipi);
|
||||
DECLARE_IDTENTRY_SYSVEC(POSTED_INTR_WAKEUP_VECTOR, sysvec_kvm_posted_intr_wakeup_ipi);
|
||||
DECLARE_IDTENTRY_SYSVEC(POSTED_INTR_NESTED_VECTOR, sysvec_kvm_posted_intr_nested_ipi);
|
||||
|
@ -29,7 +29,7 @@ struct irq_desc;
|
||||
|
||||
extern void fixup_irqs(void);
|
||||
|
||||
#ifdef CONFIG_HAVE_KVM
|
||||
#if IS_ENABLED(CONFIG_KVM)
|
||||
extern void kvm_set_posted_intr_wakeup_handler(void (*handler)(void));
|
||||
#endif
|
||||
|
||||
|
@ -84,7 +84,7 @@
|
||||
#define HYPERVISOR_CALLBACK_VECTOR 0xf3
|
||||
|
||||
/* Vector for KVM to deliver posted interrupt IPI */
|
||||
#ifdef CONFIG_HAVE_KVM
|
||||
#if IS_ENABLED(CONFIG_KVM)
|
||||
#define POSTED_INTR_VECTOR 0xf2
|
||||
#define POSTED_INTR_WAKEUP_VECTOR 0xf1
|
||||
#define POSTED_INTR_NESTED_VECTOR 0xf0
|
||||
|
@ -153,7 +153,7 @@ static const __initconst struct idt_data apic_idts[] = {
|
||||
#ifdef CONFIG_X86_LOCAL_APIC
|
||||
INTG(LOCAL_TIMER_VECTOR, asm_sysvec_apic_timer_interrupt),
|
||||
INTG(X86_PLATFORM_IPI_VECTOR, asm_sysvec_x86_platform_ipi),
|
||||
# ifdef CONFIG_HAVE_KVM
|
||||
# if IS_ENABLED(CONFIG_KVM)
|
||||
INTG(POSTED_INTR_VECTOR, asm_sysvec_kvm_posted_intr_ipi),
|
||||
INTG(POSTED_INTR_WAKEUP_VECTOR, asm_sysvec_kvm_posted_intr_wakeup_ipi),
|
||||
INTG(POSTED_INTR_NESTED_VECTOR, asm_sysvec_kvm_posted_intr_nested_ipi),
|
||||
|
@ -164,7 +164,7 @@ int arch_show_interrupts(struct seq_file *p, int prec)
|
||||
#if defined(CONFIG_X86_IO_APIC)
|
||||
seq_printf(p, "%*s: %10u\n", prec, "MIS", atomic_read(&irq_mis_count));
|
||||
#endif
|
||||
#ifdef CONFIG_HAVE_KVM
|
||||
#if IS_ENABLED(CONFIG_KVM)
|
||||
seq_printf(p, "%*s: ", prec, "PIN");
|
||||
for_each_online_cpu(j)
|
||||
seq_printf(p, "%10u ", irq_stats(j)->kvm_posted_intr_ipis);
|
||||
@ -290,7 +290,7 @@ DEFINE_IDTENTRY_SYSVEC(sysvec_x86_platform_ipi)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_HAVE_KVM
|
||||
#if IS_ENABLED(CONFIG_KVM)
|
||||
static void dummy_handler(void) {}
|
||||
static void (*kvm_posted_intr_wakeup_handler)(void) = dummy_handler;
|
||||
|
||||
|
@ -7,7 +7,6 @@ source "virt/kvm/Kconfig"
|
||||
|
||||
menuconfig VIRTUALIZATION
|
||||
bool "Virtualization"
|
||||
depends on HAVE_KVM || X86
|
||||
default y
|
||||
help
|
||||
Say Y here to get to see options for using your Linux host to run other
|
||||
@ -20,7 +19,6 @@ if VIRTUALIZATION
|
||||
|
||||
config KVM
|
||||
tristate "Kernel-based Virtual Machine (KVM) support"
|
||||
depends on HAVE_KVM
|
||||
depends on HIGH_RES_TIMERS
|
||||
depends on X86_LOCAL_APIC
|
||||
select KVM_COMMON
|
||||
@ -29,7 +27,6 @@ config KVM
|
||||
select HAVE_KVM_PFNCACHE
|
||||
select HAVE_KVM_DIRTY_RING_TSO
|
||||
select HAVE_KVM_DIRTY_RING_ACQ_REL
|
||||
select IRQ_BYPASS_MANAGER
|
||||
select HAVE_KVM_IRQ_BYPASS
|
||||
select HAVE_KVM_IRQ_ROUTING
|
||||
select HAVE_KVM_READONLY_MEM
|
||||
|
@ -434,7 +434,7 @@ static inline void vfio_virqfd_exit(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_HAVE_KVM
|
||||
#if IS_ENABLED(CONFIG_KVM)
|
||||
void vfio_device_get_kvm_safe(struct vfio_device *device, struct kvm *kvm);
|
||||
void vfio_device_put_kvm(struct vfio_device *device);
|
||||
#else
|
||||
|
@ -16,7 +16,7 @@
|
||||
#include <linux/fs.h>
|
||||
#include <linux/idr.h>
|
||||
#include <linux/iommu.h>
|
||||
#ifdef CONFIG_HAVE_KVM
|
||||
#if IS_ENABLED(CONFIG_KVM)
|
||||
#include <linux/kvm_host.h>
|
||||
#endif
|
||||
#include <linux/list.h>
|
||||
@ -385,7 +385,7 @@ void vfio_unregister_group_dev(struct vfio_device *device)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(vfio_unregister_group_dev);
|
||||
|
||||
#ifdef CONFIG_HAVE_KVM
|
||||
#if IS_ENABLED(CONFIG_KVM)
|
||||
void vfio_device_get_kvm_safe(struct vfio_device *device, struct kvm *kvm)
|
||||
{
|
||||
void (*pfn)(struct kvm *kvm);
|
||||
|
@ -130,7 +130,11 @@ LX_CONFIG(CONFIG_X86_MCE_THRESHOLD)
|
||||
LX_CONFIG(CONFIG_X86_MCE_AMD)
|
||||
LX_CONFIG(CONFIG_X86_MCE)
|
||||
LX_CONFIG(CONFIG_X86_IO_APIC)
|
||||
LX_CONFIG(CONFIG_HAVE_KVM)
|
||||
/*
|
||||
* CONFIG_KVM can be "m" but it affects common code too. Use CONFIG_KVM_COMMON
|
||||
* as a proxy for IS_ENABLED(CONFIG_KVM).
|
||||
*/
|
||||
LX_CONFIG_KVM = IS_BUILTIN(CONFIG_KVM_COMMON)
|
||||
LX_CONFIG(CONFIG_NUMA)
|
||||
LX_CONFIG(CONFIG_ARM64)
|
||||
LX_CONFIG(CONFIG_ARM64_4K_PAGES)
|
||||
|
@ -151,7 +151,7 @@ def x86_show_interupts(prec):
|
||||
if cnt is not None:
|
||||
text += "%*s: %10u\n" % (prec, "MIS", cnt['counter'])
|
||||
|
||||
if constants.LX_CONFIG_HAVE_KVM:
|
||||
if constants.LX_CONFIG_KVM:
|
||||
text += x86_show_irqstat(prec, "PIN", 'kvm_posted_intr_ipis', 'Posted-interrupt notification event')
|
||||
text += x86_show_irqstat(prec, "NPI", 'kvm_posted_intr_nested_ipis', 'Nested posted-interrupt event')
|
||||
text += x86_show_irqstat(prec, "PIW", 'kvm_posted_intr_wakeup_ipis', 'Posted-interrupt wakeup event')
|
||||
|
@ -84,7 +84,7 @@
|
||||
#define HYPERVISOR_CALLBACK_VECTOR 0xf3
|
||||
|
||||
/* Vector for KVM to deliver posted interrupt IPI */
|
||||
#ifdef CONFIG_HAVE_KVM
|
||||
#if IS_ENABLED(CONFIG_KVM)
|
||||
#define POSTED_INTR_VECTOR 0xf2
|
||||
#define POSTED_INTR_WAKEUP_VECTOR 0xf1
|
||||
#define POSTED_INTR_NESTED_VECTOR 0xf0
|
||||
|
@ -1,9 +1,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# KVM common configuration items and defaults
|
||||
|
||||
config HAVE_KVM
|
||||
bool
|
||||
|
||||
config KVM_COMMON
|
||||
bool
|
||||
select EVENTFD
|
||||
@ -76,6 +73,7 @@ config KVM_COMPAT
|
||||
|
||||
config HAVE_KVM_IRQ_BYPASS
|
||||
bool
|
||||
select IRQ_BYPASS_MANAGER
|
||||
|
||||
config HAVE_KVM_VCPU_ASYNC_IOCTL
|
||||
bool
|
||||
|
Loading…
Reference in New Issue
Block a user