CONFIG_HAVE_KVM is currently used with three meanings: - some architectures use it to enabled the KVM config proper, depending on CPU capabilities (MIPS) - some architectures use it to enable host-side code that is not part of the KVM module (x86) - to enable common Kconfigs required by all architectures that support KVM, currently CONFIG_EVENTFD These three meanings can be replaced respectively by an architecture- specific Kconfig, by IS_ENABLED(CONFIG_KVM), or by a new Kconfig symbol that is in turn selected by the architecture-specific "config KVM". This is what each of the first three patches does. After this, CONFIG_HAVE_KVM is unused and can be removed. This fixes architectures (PPC and RISC-V) that do not have CONFIG_HAVE_KVM=y and therefore fail to select CONFIG_EVENTFD. Patch 1 can be quickly applied to 6.8 to fix this build failure, while the rest can be delayed to the early -rc period or 6.9 if desired. Paolo Paolo Bonzini (4): KVM: introduce CONFIG_KVM_COMMON MIPS: introduce Kconfig for MIPS VZ x86, vfio, gdb: replace CONFIG_HAVE_KVM with IS_ENABLED(CONFIG_KVM) treewide: remove CONFIG_HAVE_KVM arch/arm64/Kconfig | 1 - arch/arm64/kvm/Kconfig | 2 +- arch/loongarch/Kconfig | 1 - arch/loongarch/kvm/Kconfig | 2 +- arch/mips/Kconfig | 18 +++++++++--------- arch/mips/kvm/Kconfig | 3 ++- arch/powerpc/kvm/Kconfig | 1 + arch/riscv/kvm/Kconfig | 1 + arch/s390/Kconfig | 1 - arch/s390/kvm/Kconfig | 2 +- arch/x86/Kconfig | 1 - arch/x86/include/asm/hardirq.h | 2 +- arch/x86/include/asm/idtentry.h | 2 +- arch/x86/include/asm/irq.h | 2 +- arch/x86/include/asm/irq_vectors.h | 2 +- arch/x86/kernel/idt.c | 2 +- arch/x86/kernel/irq.c | 4 ++-- arch/x86/kvm/Kconfig | 3 +-- drivers/vfio/vfio.h | 2 +- drivers/vfio/vfio_main.c | 4 ++-- scripts/gdb/linux/constants.py.in | 6 +++++- scripts/gdb/linux/interrupts.py | 2 +- tools/arch/x86/include/asm/irq_vectors.h | 2 +- virt/kvm/Kconfig | 2 +- 24 files changed, 35 insertions(+), 33 deletions(-) -- 2.39.1