Skip to content

Commit c0d1a39

Browse files
committed
KVM: selftests: Always unlink memory regions when deleting (VM free)
Unlink memory regions when freeing a VM, even though it's not strictly necessary since all tracking structures are freed soon after. The time spent deleting entries is negligible, and not unlinking entries is confusing, e.g. it's easy to overlook that the tree structures are freed by the caller. Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Sean Christopherson <[email protected]>
1 parent ce3b90b commit c0d1a39

File tree

1 file changed

+6
-9
lines changed

1 file changed

+6
-9
lines changed

tools/testing/selftests/kvm/lib/kvm_util.c

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -712,16 +712,13 @@ void kvm_vm_release(struct kvm_vm *vmp)
712712
}
713713

714714
static void __vm_mem_region_delete(struct kvm_vm *vm,
715-
struct userspace_mem_region *region,
716-
bool unlink)
715+
struct userspace_mem_region *region)
717716
{
718717
int ret;
719718

720-
if (unlink) {
721-
rb_erase(&region->gpa_node, &vm->regions.gpa_tree);
722-
rb_erase(&region->hva_node, &vm->regions.hva_tree);
723-
hash_del(&region->slot_node);
724-
}
719+
rb_erase(&region->gpa_node, &vm->regions.gpa_tree);
720+
rb_erase(&region->hva_node, &vm->regions.hva_tree);
721+
hash_del(&region->slot_node);
725722

726723
region->region.memory_size = 0;
727724
vm_ioctl(vm, KVM_SET_USER_MEMORY_REGION2, &region->region);
@@ -762,7 +759,7 @@ void kvm_vm_free(struct kvm_vm *vmp)
762759

763760
/* Free userspace_mem_regions. */
764761
hash_for_each_safe(vmp->regions.slot_hash, ctr, node, region, slot_node)
765-
__vm_mem_region_delete(vmp, region, false);
762+
__vm_mem_region_delete(vmp, region);
766763

767764
/* Free sparsebit arrays. */
768765
sparsebit_free(&vmp->vpages_valid);
@@ -1200,7 +1197,7 @@ void vm_mem_region_move(struct kvm_vm *vm, uint32_t slot, uint64_t new_gpa)
12001197
*/
12011198
void vm_mem_region_delete(struct kvm_vm *vm, uint32_t slot)
12021199
{
1203-
__vm_mem_region_delete(vm, memslot2region(vm, slot), true);
1200+
__vm_mem_region_delete(vm, memslot2region(vm, slot));
12041201
}
12051202

12061203
void vm_guest_mem_fallocate(struct kvm_vm *vm, uint64_t base, uint64_t size,

0 commit comments

Comments
 (0)