]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
kvm: replace __KVM_HAVE_READONLY_MEM with Kconfig symbol
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 11 Jan 2024 08:00:34 +0000 (03:00 -0500)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 8 Feb 2024 13:41:06 +0000 (08:41 -0500)
KVM uses __KVM_HAVE_* symbols in the architecture-dependent uapi/asm/kvm.h to mask
unused definitions in include/uapi/linux/kvm.h.  __KVM_HAVE_READONLY_MEM however
was nothing but a misguided attempt to define KVM_CAP_READONLY_MEM only on
architectures where KVM_CHECK_EXTENSION(KVM_CAP_READONLY_MEM) could possibly
return nonzero.  This however does not make sense, and it prevented userspace
from supporting this architecture-independent feature without recompilation.

Therefore, these days __KVM_HAVE_READONLY_MEM does not mask anything and
is only used in virt/kvm/kvm_main.c.  Userspace does not need to test it
and there should be no need for it to exist.  Remove it and replace it
with a Kconfig symbol within Linux source code.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
12 files changed:
arch/arm64/include/uapi/asm/kvm.h
arch/arm64/kvm/Kconfig
arch/loongarch/include/uapi/asm/kvm.h
arch/loongarch/kvm/Kconfig
arch/mips/include/uapi/asm/kvm.h
arch/mips/kvm/Kconfig
arch/riscv/include/uapi/asm/kvm.h
arch/riscv/kvm/Kconfig
arch/x86/include/uapi/asm/kvm.h
arch/x86/kvm/Kconfig
virt/kvm/Kconfig
virt/kvm/kvm_main.c

index 75809c8dc2f073e0cfe6f2dbe56d2655943fb34d..9c1040dad4eb3d6917bbe11dafb551d4a07e10d9 100644 (file)
@@ -39,7 +39,6 @@
 
 #define __KVM_HAVE_GUEST_DEBUG
 #define __KVM_HAVE_IRQ_LINE
-#define __KVM_HAVE_READONLY_MEM
 #define __KVM_HAVE_VCPU_EVENTS
 
 #define KVM_COALESCED_MMIO_PAGE_OFFSET 1
index 6c3c8ca73e7fda8bb29792218bb11d031e7527ff..114626b816f7e1ac39d2cc6d8c165d87721d5394 100644 (file)
@@ -36,6 +36,7 @@ menuconfig KVM
        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
        select SCHED_INFO
        select GUEST_PERF_EVENTS if PERF_EVENTS
index 923d0bd382941acc5794d7622f7adfe1b2533422..109785922cf94e455b3945f18ec7b1f0c82b233d 100644 (file)
@@ -14,8 +14,6 @@
  * Some parts derived from the x86 version of this file.
  */
 
-#define __KVM_HAVE_READONLY_MEM
-
 #define KVM_COALESCED_MMIO_PAGE_OFFSET 1
 #define KVM_DIRTY_LOG_PAGE_OFFSET      64
 
index 61f7e33b1f95731c3c1a207337e30a63ff028ad6..0768b45422a34b10c4bb177bc90b8c880e0abc42 100644 (file)
@@ -28,6 +28,7 @@ config KVM
        select KVM_GENERIC_HARDWARE_ENABLING
        select KVM_GENERIC_MMU_NOTIFIER
        select KVM_MMIO
+       select HAVE_KVM_READONLY_MEM
        select KVM_XFER_TO_GUEST_WORK
        help
          Support hosting virtualized guest machines using
index edcf717c432717fce72096b1e5a2905c3f8c63ba..9673dc9cb31575a3553a4cf0e73d3e73ec24494f 100644 (file)
@@ -20,8 +20,6 @@
  * Some parts derived from the x86 version of this file.
  */
 
-#define __KVM_HAVE_READONLY_MEM
-
 #define KVM_COALESCED_MMIO_PAGE_OFFSET 1
 
 /*
index 18e7a17d51158ee45901b4fda71f4996eb6d8a9a..8474bf9c689e59213d643ff36a5b5ca32d26b77a 100644 (file)
@@ -26,6 +26,7 @@ config KVM
        select KVM_MMIO
        select KVM_GENERIC_MMU_NOTIFIER
        select KVM_GENERIC_HARDWARE_ENABLING
+       select HAVE_KVM_READONLY_MEM
        help
          Support for hosting Guest kernels.
 
index 7499e88a947c086c5f569e98a899f50d098a8335..fdf4ba06613103714b4ef622d5ae1383cd347b0c 100644 (file)
@@ -16,7 +16,6 @@
 #include <asm/ptrace.h>
 
 #define __KVM_HAVE_IRQ_LINE
-#define __KVM_HAVE_READONLY_MEM
 
 #define KVM_COALESCED_MMIO_PAGE_OFFSET 1
 
index d490db94385883eb3e74048c799cea3f6a07e8cf..26d1727f0550d3dbf8cf55ce9e1d3ca1e2d41fc4 100644 (file)
@@ -24,6 +24,7 @@ config KVM
        select HAVE_KVM_IRQ_ROUTING
        select HAVE_KVM_MSI
        select HAVE_KVM_VCPU_ASYNC_IOCTL
+       select HAVE_KVM_READONLY_MEM
        select KVM_COMMON
        select KVM_GENERIC_DIRTYLOG_READ_PROTECT
        select KVM_GENERIC_HARDWARE_ENABLING
index bf68e56fd484f00aadda8c3a5b9b7d02572d990f..c5e682ee7726d3bfd67ce7dd7b639b0ab81aece4 100644 (file)
@@ -51,7 +51,6 @@
 #define __KVM_HAVE_DEBUGREGS
 #define __KVM_HAVE_XSAVE
 #define __KVM_HAVE_XCRS
-#define __KVM_HAVE_READONLY_MEM
 
 /* Architectural interrupt line count. */
 #define KVM_NR_INTERRUPTS 256
index 87e3da7b0439790dac6b35aa4f95e8e7573284d7..5895aee5dfefe71d07d25d818a93cea8d1ba37fa 100644 (file)
@@ -32,6 +32,7 @@ config KVM
        select IRQ_BYPASS_MANAGER
        select HAVE_KVM_IRQ_BYPASS
        select HAVE_KVM_IRQ_ROUTING
+       select HAVE_KVM_READONLY_MEM
        select KVM_ASYNC_PF
        select USER_RETURN_NOTIFIER
        select KVM_MMIO
index 184dab4ee871c6d2f54e1b095fab43c5f9f97e9a..a11e9c80fac9ce9237ac68f342eccf0627f8a693 100644 (file)
@@ -55,6 +55,9 @@ config KVM_ASYNC_PF_SYNC
 config HAVE_KVM_MSI
        bool
 
+config HAVE_KVM_READONLY_MEM
+       bool
+
 config HAVE_KVM_CPU_RELAX_INTERCEPT
        bool
 
index 10bfc88a69f72b6a0e310cca043fb04882e24eb1..ff588677beb7dc2df2103a352b6d238b14a492fd 100644 (file)
@@ -1614,7 +1614,7 @@ static int check_memory_region_flags(struct kvm *kvm,
        if (mem->flags & KVM_MEM_GUEST_MEMFD)
                valid_flags &= ~KVM_MEM_LOG_DIRTY_PAGES;
 
-#ifdef __KVM_HAVE_READONLY_MEM
+#ifdef CONFIG_HAVE_KVM_READONLY_MEM
        valid_flags |= KVM_MEM_READONLY;
 #endif