rb_erase(®ion->hva_node, &vm->regions.hva_tree);
        hash_del(®ion->slot_node);
 
-       region->region.memory_size = 0;
-       vm_ioctl(vm, KVM_SET_USER_MEMORY_REGION2, ®ion->region);
-
        sparsebit_free(®ion->unused_phy_pages);
        sparsebit_free(®ion->protected_phy_pages);
        ret = munmap(region->mmap_start, region->mmap_size);
  */
 void vm_mem_region_delete(struct kvm_vm *vm, uint32_t slot)
 {
-       __vm_mem_region_delete(vm, memslot2region(vm, slot));
+       struct userspace_mem_region *region = memslot2region(vm, slot);
+
+       region->region.memory_size = 0;
+       vm_ioctl(vm, KVM_SET_USER_MEMORY_REGION2, ®ion->region);
+
+       __vm_mem_region_delete(vm, region);
 }
 
 void vm_guest_mem_fallocate(struct kvm_vm *vm, uint64_t base, uint64_t size,