]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
KVM: s390: Improve kvm_s390_vm_stop_migration()
authorClaudio Imbrenda <imbrenda@linux.ibm.com>
Thu, 2 Jul 2026 15:24:06 +0000 (17:24 +0200)
committerChristian Borntraeger <borntraeger@linux.ibm.com>
Thu, 9 Jul 2026 08:26:10 +0000 (10:26 +0200)
There is no need to clear cmma-dirty state if the VM is not using CMMA.

Skip the CMMA-related code if CMMA is not in use.

Fixes: 6cfd47f91f6a ("KVM: s390: Fix cmma dirty tracking")
Fixes: 190df4a212a7 ("KVM: s390: CMMA tracking, ESSA emulation, migration mode")
Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@linux.ibm.com>
arch/s390/kvm/kvm-s390.c

index 23c817595e28d5cc1c84995fbdf6e62e3eeba149..150b5dd2170e2fe9b1d23bed79242f3eaf6fba38 100644 (file)
@@ -1280,8 +1280,10 @@ static int kvm_s390_vm_stop_migration(struct kvm *kvm)
         * PGSTEs might have cmma_d set.
         */
        WRITE_ONCE(kvm->arch.migration_mode, 0);
-       if (kvm->arch.use_cmma)
-               kvm_s390_sync_request_broadcast(kvm, KVM_REQ_STOP_MIGRATION);
+       if (!kvm->arch.use_cmma)
+               return 0;
+
+       kvm_s390_sync_request_broadcast(kvm, KVM_REQ_STOP_MIGRATION);
        /* Clear cmma_d on all existing PGSTEs and set cmma_dirty_pages to 0. */
        gmap_set_cmma_all_clean(kvm->arch.gmap);
        atomic64_set(&kvm->arch.cmma_dirty_pages, 0);