]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commitdiff
KVM: always define KVM_CAP_SYNC_MMU
authorPaolo Bonzini <pbonzini@redhat.com>
Wed, 11 Feb 2026 18:06:31 +0000 (19:06 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Sat, 28 Feb 2026 14:31:35 +0000 (15:31 +0100)
KVM_CAP_SYNC_MMU is provided by KVM's MMU notifiers, which are now always
available.  Move the definition from individual architectures to common
code.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Documentation/virt/kvm/api.rst
arch/arm64/kvm/arm.c
arch/loongarch/kvm/vm.c
arch/mips/kvm/mips.c
arch/powerpc/kvm/powerpc.c
arch/riscv/kvm/vm.c
arch/s390/kvm/kvm-s390.c
arch/x86/kvm/x86.c
virt/kvm/kvm_main.c

index fc5736839edd6c186fb59c6c3288b51212137480..6f85e1b321dd3704dd2916d5ca6ad70315d3f516 100644 (file)
@@ -1396,7 +1396,10 @@ or its flags may be modified, but it may not be resized.
 Memory for the region is taken starting at the address denoted by the
 field userspace_addr, which must point at user addressable memory for
 the entire memory slot size.  Any object may back this memory, including
-anonymous memory, ordinary files, and hugetlbfs.
+anonymous memory, ordinary files, and hugetlbfs.  Changes in the backing
+of the memory region are automatically reflected into the guest.
+For example, an mmap() that affects the region will be made visible
+immediately.  Another example is madvise(MADV_DROP).
 
 On architectures that support a form of address tagging, userspace_addr must
 be an untagged address.
@@ -1412,11 +1415,6 @@ use it.  The latter can be set, if KVM_CAP_READONLY_MEM capability allows it,
 to make a new slot read-only.  In this case, writes to this memory will be
 posted to userspace as KVM_EXIT_MMIO exits.
 
-When the KVM_CAP_SYNC_MMU capability is available, changes in the backing of
-the memory region are automatically reflected into the guest.  For example, an
-mmap() that affects the region will be made visible immediately.  Another
-example is madvise(MADV_DROP).
-
 For TDX guest, deleting/moving memory region loses guest memory contents.
 Read only region isn't supported.  Only as-id 0 is supported.
 
index 29f0326f7e003857eea4849735d399422c018657..410ffd41fd73aadfbdedd8892dfb2f0534416605 100644 (file)
@@ -358,7 +358,6 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
                break;
        case KVM_CAP_IOEVENTFD:
        case KVM_CAP_USER_MEMORY:
-       case KVM_CAP_SYNC_MMU:
        case KVM_CAP_DESTROY_MEMORY_REGION_WORKS:
        case KVM_CAP_ONE_REG:
        case KVM_CAP_ARM_PSCI:
index 63fd40530aa966570d9ebd71ec8edb02359c1ff3..5282158b8122a5ad6b8b2cc421d6eb9290cb21bd 100644 (file)
@@ -118,7 +118,6 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
        case KVM_CAP_ONE_REG:
        case KVM_CAP_ENABLE_CAP:
        case KVM_CAP_READONLY_MEM:
-       case KVM_CAP_SYNC_MMU:
        case KVM_CAP_IMMEDIATE_EXIT:
        case KVM_CAP_IOEVENTFD:
        case KVM_CAP_MP_STATE:
index b0fb92fda4d4235b3d51b5eb94aec25287d4e119..29d9f630edfb2bec7a2f750fb73ba73fbe252bd7 100644 (file)
@@ -1035,7 +1035,6 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
        case KVM_CAP_ONE_REG:
        case KVM_CAP_ENABLE_CAP:
        case KVM_CAP_READONLY_MEM:
-       case KVM_CAP_SYNC_MMU:
        case KVM_CAP_IMMEDIATE_EXIT:
                r = 1;
                break;
index 3da40ea8c5623f6372e8b2abd954a11d896ad76e..00302399fc37b43114704c5230eefe55515fb6e9 100644 (file)
@@ -623,11 +623,6 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
                r = !!(hv_enabled && kvmppc_hv_ops->enable_nested &&
                       !kvmppc_hv_ops->enable_nested(NULL));
                break;
-#endif
-       case KVM_CAP_SYNC_MMU:
-               r = 1;
-               break;
-#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
        case KVM_CAP_PPC_HTAB_FD:
                r = hv_enabled;
                break;
index 7cbd2340c190fee947611afd5d8509dfa0680004..58bce57dc55bfece34cf89f800a7d337e963453e 100644 (file)
@@ -181,7 +181,6 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
                break;
        case KVM_CAP_IOEVENTFD:
        case KVM_CAP_USER_MEMORY:
-       case KVM_CAP_SYNC_MMU:
        case KVM_CAP_DESTROY_MEMORY_REGION_WORKS:
        case KVM_CAP_ONE_REG:
        case KVM_CAP_READONLY_MEM:
index 7a175d86cef0359ec71b6b631b5808e9f626fb9e..bc7d6fa66eafd83f98957fec07f1b7914b64d365 100644 (file)
@@ -601,7 +601,6 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
        switch (ext) {
        case KVM_CAP_S390_PSW:
        case KVM_CAP_S390_GMAP:
-       case KVM_CAP_SYNC_MMU:
 #ifdef CONFIG_KVM_S390_UCONTROL
        case KVM_CAP_S390_UCONTROL:
 #endif
index 3fb64905d19071a779fa00d1d27a4922e83e4c24..a03530795707797b73c701b0c952d46d27389e8d 100644 (file)
@@ -4805,7 +4805,6 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
 #endif
        case KVM_CAP_NOP_IO_DELAY:
        case KVM_CAP_MP_STATE:
-       case KVM_CAP_SYNC_MMU:
        case KVM_CAP_USER_NMI:
        case KVM_CAP_IRQ_INJECT_STATUS:
        case KVM_CAP_IOEVENTFD:
index 29ee01747347eb16866e49b835e082d0d91dcf3f..1bc1da66b4b02bab32e75ad6414b630e4d196af4 100644 (file)
@@ -4870,6 +4870,7 @@ static int kvm_ioctl_create_device(struct kvm *kvm,
 static int kvm_vm_ioctl_check_extension_generic(struct kvm *kvm, long arg)
 {
        switch (arg) {
+       case KVM_CAP_SYNC_MMU:
        case KVM_CAP_USER_MEMORY:
        case KVM_CAP_USER_MEMORY2:
        case KVM_CAP_DESTROY_MEMORY_REGION_WORKS: