Commit 687d8f4c authored by Paolo Bonzini's avatar Paolo Bonzini

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
parents 69327047 f48212ee
...@@ -216,7 +216,6 @@ config ARM64 ...@@ -216,7 +216,6 @@ config ARM64
select HAVE_HW_BREAKPOINT if PERF_EVENTS select HAVE_HW_BREAKPOINT if PERF_EVENTS
select HAVE_IOREMAP_PROT select HAVE_IOREMAP_PROT
select HAVE_IRQ_TIME_ACCOUNTING select HAVE_IRQ_TIME_ACCOUNTING
select HAVE_KVM
select HAVE_MOD_ARCH_SPECIFIC select HAVE_MOD_ARCH_SPECIFIC
select HAVE_NMI select HAVE_NMI
select HAVE_PERF_EVENTS select HAVE_PERF_EVENTS
......
...@@ -20,7 +20,6 @@ if VIRTUALIZATION ...@@ -20,7 +20,6 @@ if VIRTUALIZATION
menuconfig KVM menuconfig KVM
bool "Kernel-based Virtual Machine (KVM) support" bool "Kernel-based Virtual Machine (KVM) support"
depends on HAVE_KVM
select KVM_COMMON select KVM_COMMON
select KVM_GENERIC_HARDWARE_ENABLING select KVM_GENERIC_HARDWARE_ENABLING
select KVM_GENERIC_MMU_NOTIFIER select KVM_GENERIC_MMU_NOTIFIER
...@@ -34,7 +33,6 @@ menuconfig KVM ...@@ -34,7 +33,6 @@ menuconfig KVM
select HAVE_KVM_MSI select HAVE_KVM_MSI
select HAVE_KVM_IRQCHIP select HAVE_KVM_IRQCHIP
select HAVE_KVM_IRQ_ROUTING select HAVE_KVM_IRQ_ROUTING
select IRQ_BYPASS_MANAGER
select HAVE_KVM_IRQ_BYPASS select HAVE_KVM_IRQ_BYPASS
select HAVE_KVM_READONLY_MEM select HAVE_KVM_READONLY_MEM
select HAVE_KVM_VCPU_RUN_PID_CHANGE select HAVE_KVM_VCPU_RUN_PID_CHANGE
......
...@@ -133,7 +133,6 @@ config LOONGARCH ...@@ -133,7 +133,6 @@ config LOONGARCH
select HAVE_KPROBES select HAVE_KPROBES
select HAVE_KPROBES_ON_FTRACE select HAVE_KPROBES_ON_FTRACE
select HAVE_KRETPROBES select HAVE_KRETPROBES
select HAVE_KVM
select HAVE_MOD_ARCH_SPECIFIC select HAVE_MOD_ARCH_SPECIFIC
select HAVE_NMI select HAVE_NMI
select HAVE_PCI select HAVE_PCI
......
...@@ -20,7 +20,6 @@ if VIRTUALIZATION ...@@ -20,7 +20,6 @@ if VIRTUALIZATION
config KVM config KVM
tristate "Kernel-based Virtual Machine (KVM) support" tristate "Kernel-based Virtual Machine (KVM) support"
depends on AS_HAS_LVZ_EXTENSION depends on AS_HAS_LVZ_EXTENSION
depends on HAVE_KVM
select HAVE_KVM_DIRTY_RING_ACQ_REL select HAVE_KVM_DIRTY_RING_ACQ_REL
select HAVE_KVM_VCPU_ASYNC_IOCTL select HAVE_KVM_VCPU_ASYNC_IOCTL
select KVM_COMMON select KVM_COMMON
......
...@@ -1250,6 +1250,7 @@ config CPU_LOONGSON64 ...@@ -1250,6 +1250,7 @@ config CPU_LOONGSON64
select CPU_SUPPORTS_HIGHMEM select CPU_SUPPORTS_HIGHMEM
select CPU_SUPPORTS_HUGEPAGES select CPU_SUPPORTS_HUGEPAGES
select CPU_SUPPORTS_MSA select CPU_SUPPORTS_MSA
select CPU_SUPPORTS_VZ
select CPU_DIEI_BROKEN if !LOONGSON3_ENHANCEMENT select CPU_DIEI_BROKEN if !LOONGSON3_ENHANCEMENT
select CPU_MIPSR2_IRQ_VI select CPU_MIPSR2_IRQ_VI
select DMA_NONCOHERENT select DMA_NONCOHERENT
...@@ -1261,7 +1262,6 @@ config CPU_LOONGSON64 ...@@ -1261,7 +1262,6 @@ config CPU_LOONGSON64
select MIPS_FP_SUPPORT select MIPS_FP_SUPPORT
select GPIOLIB select GPIOLIB
select SWIOTLB select SWIOTLB
select HAVE_KVM
help help
The Loongson GSx64(GS264/GS464/GS464E/GS464V) series of processor The Loongson GSx64(GS264/GS464/GS464E/GS464V) series of processor
cores implements the MIPS64R2 instruction set with many extensions, cores implements the MIPS64R2 instruction set with many extensions,
...@@ -1374,7 +1374,6 @@ config CPU_MIPS32_R2 ...@@ -1374,7 +1374,6 @@ config CPU_MIPS32_R2
select CPU_SUPPORTS_32BIT_KERNEL select CPU_SUPPORTS_32BIT_KERNEL
select CPU_SUPPORTS_HIGHMEM select CPU_SUPPORTS_HIGHMEM
select CPU_SUPPORTS_MSA select CPU_SUPPORTS_MSA
select HAVE_KVM
help help
Choose this option to build a kernel for release 2 or later of the Choose this option to build a kernel for release 2 or later of the
MIPS32 architecture. Most modern embedded systems with a 32-bit MIPS32 architecture. Most modern embedded systems with a 32-bit
...@@ -1389,7 +1388,7 @@ config CPU_MIPS32_R5 ...@@ -1389,7 +1388,7 @@ config CPU_MIPS32_R5
select CPU_SUPPORTS_32BIT_KERNEL select CPU_SUPPORTS_32BIT_KERNEL
select CPU_SUPPORTS_HIGHMEM select CPU_SUPPORTS_HIGHMEM
select CPU_SUPPORTS_MSA select CPU_SUPPORTS_MSA
select HAVE_KVM select CPU_SUPPORTS_VZ
select MIPS_O32_FP64_SUPPORT select MIPS_O32_FP64_SUPPORT
help help
Choose this option to build a kernel for release 5 or later of the Choose this option to build a kernel for release 5 or later of the
...@@ -1405,7 +1404,7 @@ config CPU_MIPS32_R6 ...@@ -1405,7 +1404,7 @@ config CPU_MIPS32_R6
select CPU_SUPPORTS_32BIT_KERNEL select CPU_SUPPORTS_32BIT_KERNEL
select CPU_SUPPORTS_HIGHMEM select CPU_SUPPORTS_HIGHMEM
select CPU_SUPPORTS_MSA select CPU_SUPPORTS_MSA
select HAVE_KVM select CPU_SUPPORTS_VZ
select MIPS_O32_FP64_SUPPORT select MIPS_O32_FP64_SUPPORT
help help
Choose this option to build a kernel for release 6 or later of the Choose this option to build a kernel for release 6 or later of the
...@@ -1441,7 +1440,6 @@ config CPU_MIPS64_R2 ...@@ -1441,7 +1440,6 @@ config CPU_MIPS64_R2
select CPU_SUPPORTS_HIGHMEM select CPU_SUPPORTS_HIGHMEM
select CPU_SUPPORTS_HUGEPAGES select CPU_SUPPORTS_HUGEPAGES
select CPU_SUPPORTS_MSA select CPU_SUPPORTS_MSA
select HAVE_KVM
help help
Choose this option to build a kernel for release 2 or later of the Choose this option to build a kernel for release 2 or later of the
MIPS64 architecture. Many modern embedded systems with a 64-bit MIPS64 architecture. Many modern embedded systems with a 64-bit
...@@ -1459,7 +1457,7 @@ config CPU_MIPS64_R5 ...@@ -1459,7 +1457,7 @@ config CPU_MIPS64_R5
select CPU_SUPPORTS_HUGEPAGES select CPU_SUPPORTS_HUGEPAGES
select CPU_SUPPORTS_MSA select CPU_SUPPORTS_MSA
select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32 select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
select HAVE_KVM select CPU_SUPPORTS_VZ
help help
Choose this option to build a kernel for release 5 or later of the Choose this option to build a kernel for release 5 or later of the
MIPS64 architecture. This is a intermediate MIPS architecture MIPS64 architecture. This is a intermediate MIPS architecture
...@@ -1477,7 +1475,7 @@ config CPU_MIPS64_R6 ...@@ -1477,7 +1475,7 @@ config CPU_MIPS64_R6
select CPU_SUPPORTS_HUGEPAGES select CPU_SUPPORTS_HUGEPAGES
select CPU_SUPPORTS_MSA select CPU_SUPPORTS_MSA
select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32 select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
select HAVE_KVM select CPU_SUPPORTS_VZ
help help
Choose this option to build a kernel for release 6 or later of the Choose this option to build a kernel for release 6 or later of the
MIPS64 architecture. New MIPS processors, starting with the Warrior MIPS64 architecture. New MIPS processors, starting with the Warrior
...@@ -1492,9 +1490,9 @@ config CPU_P5600 ...@@ -1492,9 +1490,9 @@ config CPU_P5600
select CPU_SUPPORTS_HIGHMEM select CPU_SUPPORTS_HIGHMEM
select CPU_SUPPORTS_MSA select CPU_SUPPORTS_MSA
select CPU_SUPPORTS_CPUFREQ select CPU_SUPPORTS_CPUFREQ
select CPU_SUPPORTS_VZ
select CPU_MIPSR2_IRQ_VI select CPU_MIPSR2_IRQ_VI
select CPU_MIPSR2_IRQ_EI select CPU_MIPSR2_IRQ_EI
select HAVE_KVM
select MIPS_O32_FP64_SUPPORT select MIPS_O32_FP64_SUPPORT
help help
Choose this option to build a kernel for MIPS Warrior P5600 CPU. Choose this option to build a kernel for MIPS Warrior P5600 CPU.
...@@ -1614,7 +1612,7 @@ config CPU_CAVIUM_OCTEON ...@@ -1614,7 +1612,7 @@ config CPU_CAVIUM_OCTEON
select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
select MIPS_L1_CACHE_SHIFT_7 select MIPS_L1_CACHE_SHIFT_7
select HAVE_KVM select CPU_SUPPORTS_VZ
help help
The Cavium Octeon processor is a highly integrated chip containing The Cavium Octeon processor is a highly integrated chip containing
many ethernet hardware widgets for networking tasks. The processor many ethernet hardware widgets for networking tasks. The processor
...@@ -1969,6 +1967,8 @@ config CPU_SUPPORTS_ADDRWINCFG ...@@ -1969,6 +1967,8 @@ config CPU_SUPPORTS_ADDRWINCFG
config CPU_SUPPORTS_HUGEPAGES config CPU_SUPPORTS_HUGEPAGES
bool bool
depends on !(32BIT && (PHYS_ADDR_T_64BIT || EVA)) depends on !(32BIT && (PHYS_ADDR_T_64BIT || EVA))
config CPU_SUPPORTS_VZ
bool
config MIPS_PGD_C0_CONTEXT config MIPS_PGD_C0_CONTEXT
bool bool
depends on 64BIT depends on 64BIT
......
...@@ -17,7 +17,7 @@ if VIRTUALIZATION ...@@ -17,7 +17,7 @@ if VIRTUALIZATION
config KVM config KVM
tristate "Kernel-based Virtual Machine (KVM) support" tristate "Kernel-based Virtual Machine (KVM) support"
depends on HAVE_KVM depends on CPU_SUPPORTS_VZ
depends on MIPS_FP_SUPPORT depends on MIPS_FP_SUPPORT
select EXPORT_UASM select EXPORT_UASM
select KVM_COMMON select KVM_COMMON
......
...@@ -22,7 +22,6 @@ config KVM ...@@ -22,7 +22,6 @@ config KVM
select KVM_COMMON select KVM_COMMON
select HAVE_KVM_VCPU_ASYNC_IOCTL select HAVE_KVM_VCPU_ASYNC_IOCTL
select KVM_VFIO select KVM_VFIO
select IRQ_BYPASS_MANAGER
select HAVE_KVM_IRQ_BYPASS select HAVE_KVM_IRQ_BYPASS
config KVM_BOOK3S_HANDLER config KVM_BOOK3S_HANDLER
......
...@@ -193,7 +193,6 @@ config S390 ...@@ -193,7 +193,6 @@ config S390
select HAVE_KPROBES select HAVE_KPROBES
select HAVE_KPROBES_ON_FTRACE select HAVE_KPROBES_ON_FTRACE
select HAVE_KRETPROBES select HAVE_KRETPROBES
select HAVE_KVM
select HAVE_LIVEPATCH select HAVE_LIVEPATCH
select HAVE_MEMBLOCK_PHYS_MAP select HAVE_MEMBLOCK_PHYS_MAP
select HAVE_MOD_ARCH_SPECIFIC select HAVE_MOD_ARCH_SPECIFIC
......
...@@ -19,7 +19,6 @@ if VIRTUALIZATION ...@@ -19,7 +19,6 @@ if VIRTUALIZATION
config KVM config KVM
def_tristate y def_tristate y
prompt "Kernel-based Virtual Machine (KVM) support" prompt "Kernel-based Virtual Machine (KVM) support"
depends on HAVE_KVM
select HAVE_KVM_CPU_RELAX_INTERCEPT select HAVE_KVM_CPU_RELAX_INTERCEPT
select HAVE_KVM_VCPU_ASYNC_IOCTL select HAVE_KVM_VCPU_ASYNC_IOCTL
select KVM_ASYNC_PF select KVM_ASYNC_PF
......
...@@ -244,7 +244,6 @@ config X86 ...@@ -244,7 +244,6 @@ config X86
select HAVE_FUNCTION_ERROR_INJECTION select HAVE_FUNCTION_ERROR_INJECTION
select HAVE_KRETPROBES select HAVE_KRETPROBES
select HAVE_RETHOOK select HAVE_RETHOOK
select HAVE_KVM
select HAVE_LIVEPATCH if X86_64 select HAVE_LIVEPATCH if X86_64
select HAVE_MIXED_BREAKPOINTS_REGS select HAVE_MIXED_BREAKPOINTS_REGS
select HAVE_MOD_ARCH_SPECIFIC select HAVE_MOD_ARCH_SPECIFIC
......
...@@ -15,7 +15,7 @@ typedef struct { ...@@ -15,7 +15,7 @@ typedef struct {
unsigned int irq_spurious_count; unsigned int irq_spurious_count;
unsigned int icr_read_retry_count; unsigned int icr_read_retry_count;
#endif #endif
#ifdef CONFIG_HAVE_KVM #if IS_ENABLED(CONFIG_KVM)
unsigned int kvm_posted_intr_ipis; unsigned int kvm_posted_intr_ipis;
unsigned int kvm_posted_intr_wakeup_ipis; unsigned int kvm_posted_intr_wakeup_ipis;
unsigned int kvm_posted_intr_nested_ipis; unsigned int kvm_posted_intr_nested_ipis;
......
...@@ -675,7 +675,7 @@ DECLARE_IDTENTRY_SYSVEC(IRQ_WORK_VECTOR, sysvec_irq_work); ...@@ -675,7 +675,7 @@ DECLARE_IDTENTRY_SYSVEC(IRQ_WORK_VECTOR, sysvec_irq_work);
# endif # endif
#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_VECTOR, sysvec_kvm_posted_intr_ipi);
DECLARE_IDTENTRY_SYSVEC(POSTED_INTR_WAKEUP_VECTOR, sysvec_kvm_posted_intr_wakeup_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); DECLARE_IDTENTRY_SYSVEC(POSTED_INTR_NESTED_VECTOR, sysvec_kvm_posted_intr_nested_ipi);
......
...@@ -29,7 +29,7 @@ struct irq_desc; ...@@ -29,7 +29,7 @@ struct irq_desc;
extern void fixup_irqs(void); 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)); extern void kvm_set_posted_intr_wakeup_handler(void (*handler)(void));
#endif #endif
......
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
#define HYPERVISOR_CALLBACK_VECTOR 0xf3 #define HYPERVISOR_CALLBACK_VECTOR 0xf3
/* Vector for KVM to deliver posted interrupt IPI */ /* 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_VECTOR 0xf2
#define POSTED_INTR_WAKEUP_VECTOR 0xf1 #define POSTED_INTR_WAKEUP_VECTOR 0xf1
#define POSTED_INTR_NESTED_VECTOR 0xf0 #define POSTED_INTR_NESTED_VECTOR 0xf0
......
...@@ -153,7 +153,7 @@ static const __initconst struct idt_data apic_idts[] = { ...@@ -153,7 +153,7 @@ static const __initconst struct idt_data apic_idts[] = {
#ifdef CONFIG_X86_LOCAL_APIC #ifdef CONFIG_X86_LOCAL_APIC
INTG(LOCAL_TIMER_VECTOR, asm_sysvec_apic_timer_interrupt), INTG(LOCAL_TIMER_VECTOR, asm_sysvec_apic_timer_interrupt),
INTG(X86_PLATFORM_IPI_VECTOR, asm_sysvec_x86_platform_ipi), 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_VECTOR, asm_sysvec_kvm_posted_intr_ipi),
INTG(POSTED_INTR_WAKEUP_VECTOR, asm_sysvec_kvm_posted_intr_wakeup_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), 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) ...@@ -164,7 +164,7 @@ int arch_show_interrupts(struct seq_file *p, int prec)
#if defined(CONFIG_X86_IO_APIC) #if defined(CONFIG_X86_IO_APIC)
seq_printf(p, "%*s: %10u\n", prec, "MIS", atomic_read(&irq_mis_count)); seq_printf(p, "%*s: %10u\n", prec, "MIS", atomic_read(&irq_mis_count));
#endif #endif
#ifdef CONFIG_HAVE_KVM #if IS_ENABLED(CONFIG_KVM)
seq_printf(p, "%*s: ", prec, "PIN"); seq_printf(p, "%*s: ", prec, "PIN");
for_each_online_cpu(j) for_each_online_cpu(j)
seq_printf(p, "%10u ", irq_stats(j)->kvm_posted_intr_ipis); seq_printf(p, "%10u ", irq_stats(j)->kvm_posted_intr_ipis);
...@@ -290,7 +290,7 @@ DEFINE_IDTENTRY_SYSVEC(sysvec_x86_platform_ipi) ...@@ -290,7 +290,7 @@ DEFINE_IDTENTRY_SYSVEC(sysvec_x86_platform_ipi)
} }
#endif #endif
#ifdef CONFIG_HAVE_KVM #if IS_ENABLED(CONFIG_KVM)
static void dummy_handler(void) {} static void dummy_handler(void) {}
static void (*kvm_posted_intr_wakeup_handler)(void) = dummy_handler; static void (*kvm_posted_intr_wakeup_handler)(void) = dummy_handler;
......
...@@ -7,7 +7,6 @@ source "virt/kvm/Kconfig" ...@@ -7,7 +7,6 @@ source "virt/kvm/Kconfig"
menuconfig VIRTUALIZATION menuconfig VIRTUALIZATION
bool "Virtualization" bool "Virtualization"
depends on HAVE_KVM || X86
default y default y
help help
Say Y here to get to see options for using your Linux host to run other Say Y here to get to see options for using your Linux host to run other
...@@ -20,7 +19,6 @@ if VIRTUALIZATION ...@@ -20,7 +19,6 @@ if VIRTUALIZATION
config KVM config KVM
tristate "Kernel-based Virtual Machine (KVM) support" tristate "Kernel-based Virtual Machine (KVM) support"
depends on HAVE_KVM
depends on HIGH_RES_TIMERS depends on HIGH_RES_TIMERS
depends on X86_LOCAL_APIC depends on X86_LOCAL_APIC
select KVM_COMMON select KVM_COMMON
...@@ -29,7 +27,6 @@ config KVM ...@@ -29,7 +27,6 @@ config KVM
select HAVE_KVM_PFNCACHE select HAVE_KVM_PFNCACHE
select HAVE_KVM_DIRTY_RING_TSO select HAVE_KVM_DIRTY_RING_TSO
select HAVE_KVM_DIRTY_RING_ACQ_REL select HAVE_KVM_DIRTY_RING_ACQ_REL
select IRQ_BYPASS_MANAGER
select HAVE_KVM_IRQ_BYPASS select HAVE_KVM_IRQ_BYPASS
select HAVE_KVM_IRQ_ROUTING select HAVE_KVM_IRQ_ROUTING
select HAVE_KVM_READONLY_MEM select HAVE_KVM_READONLY_MEM
......
...@@ -434,7 +434,7 @@ static inline void vfio_virqfd_exit(void) ...@@ -434,7 +434,7 @@ static inline void vfio_virqfd_exit(void)
} }
#endif #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_get_kvm_safe(struct vfio_device *device, struct kvm *kvm);
void vfio_device_put_kvm(struct vfio_device *device); void vfio_device_put_kvm(struct vfio_device *device);
#else #else
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
#include <linux/fs.h> #include <linux/fs.h>
#include <linux/idr.h> #include <linux/idr.h>
#include <linux/iommu.h> #include <linux/iommu.h>
#ifdef CONFIG_HAVE_KVM #if IS_ENABLED(CONFIG_KVM)
#include <linux/kvm_host.h> #include <linux/kvm_host.h>
#endif #endif
#include <linux/list.h> #include <linux/list.h>
...@@ -385,7 +385,7 @@ void vfio_unregister_group_dev(struct vfio_device *device) ...@@ -385,7 +385,7 @@ void vfio_unregister_group_dev(struct vfio_device *device)
} }
EXPORT_SYMBOL_GPL(vfio_unregister_group_dev); 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 vfio_device_get_kvm_safe(struct vfio_device *device, struct kvm *kvm)
{ {
void (*pfn)(struct kvm *kvm); void (*pfn)(struct kvm *kvm);
......
...@@ -130,7 +130,11 @@ LX_CONFIG(CONFIG_X86_MCE_THRESHOLD) ...@@ -130,7 +130,11 @@ LX_CONFIG(CONFIG_X86_MCE_THRESHOLD)
LX_CONFIG(CONFIG_X86_MCE_AMD) LX_CONFIG(CONFIG_X86_MCE_AMD)
LX_CONFIG(CONFIG_X86_MCE) LX_CONFIG(CONFIG_X86_MCE)
LX_CONFIG(CONFIG_X86_IO_APIC) 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_NUMA)
LX_CONFIG(CONFIG_ARM64) LX_CONFIG(CONFIG_ARM64)
LX_CONFIG(CONFIG_ARM64_4K_PAGES) LX_CONFIG(CONFIG_ARM64_4K_PAGES)
......
...@@ -151,7 +151,7 @@ def x86_show_interupts(prec): ...@@ -151,7 +151,7 @@ def x86_show_interupts(prec):
if cnt is not None: if cnt is not None:
text += "%*s: %10u\n" % (prec, "MIS", cnt['counter']) 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, "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, "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') text += x86_show_irqstat(prec, "PIW", 'kvm_posted_intr_wakeup_ipis', 'Posted-interrupt wakeup event')
......
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
#define HYPERVISOR_CALLBACK_VECTOR 0xf3 #define HYPERVISOR_CALLBACK_VECTOR 0xf3
/* Vector for KVM to deliver posted interrupt IPI */ /* 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_VECTOR 0xf2
#define POSTED_INTR_WAKEUP_VECTOR 0xf1 #define POSTED_INTR_WAKEUP_VECTOR 0xf1
#define POSTED_INTR_NESTED_VECTOR 0xf0 #define POSTED_INTR_NESTED_VECTOR 0xf0
......
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
# KVM common configuration items and defaults # KVM common configuration items and defaults
config HAVE_KVM
bool
config KVM_COMMON config KVM_COMMON
bool bool
select EVENTFD select EVENTFD
...@@ -76,6 +73,7 @@ config KVM_COMPAT ...@@ -76,6 +73,7 @@ config KVM_COMPAT
config HAVE_KVM_IRQ_BYPASS config HAVE_KVM_IRQ_BYPASS
bool bool
select IRQ_BYPASS_MANAGER
config HAVE_KVM_VCPU_ASYNC_IOCTL config HAVE_KVM_VCPU_ASYNC_IOCTL
bool bool
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment