Merge branch 'kvm-5.20-early-patches' into HEAD
[linux-block.git] / virt / kvm / kvm_main.c
index a65a2369f7887cf4c18b53220d5ef480f42290cf..7f79abdbd68d25aad1d45e57ade14c5ff76c6d22 100644 (file)
@@ -1570,7 +1570,7 @@ static int kvm_prepare_memory_region(struct kvm *kvm,
        r = kvm_arch_prepare_memory_region(kvm, old, new, change);
 
        /* Free the bitmap on failure if it was allocated above. */
-       if (r && new && new->dirty_bitmap && old && !old->dirty_bitmap)
+       if (r && new && new->dirty_bitmap && (!old || !old->dirty_bitmap))
                kvm_destroy_dirty_bitmap(new);
 
        return r;
@@ -4309,8 +4309,11 @@ static int kvm_ioctl_create_device(struct kvm *kvm,
                kvm_put_kvm_no_destroy(kvm);
                mutex_lock(&kvm->lock);
                list_del(&dev->vm_node);
+               if (ops->release)
+                       ops->release(dev);
                mutex_unlock(&kvm->lock);
-               ops->destroy(dev);
+               if (ops->destroy)
+                       ops->destroy(dev);
                return ret;
        }