Message ID | 20220408004120.1969099-6-ricarkol@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM: selftests: Add aarch64/page_fault_test | expand |
On Thu, Apr 07, 2022 at 05:41:12PM -0700, Ricardo Koller wrote: > Deleting a memslot (when freeing a VM) is not closing the backing fd, > nor it's unmapping the alias mapping. Fix by adding the missing close > and munmap. > > Reviewed-by: Ben Gardon <bgardon@google.com> > Signed-off-by: Ricardo Koller <ricarkol@google.com> Reviewed-by: Oliver Upton <oupton@google.com>
diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/selftests/kvm/lib/kvm_util.c index e18f1c93e4b4..268ad3d75fe2 100644 --- a/tools/testing/selftests/kvm/lib/kvm_util.c +++ b/tools/testing/selftests/kvm/lib/kvm_util.c @@ -679,6 +679,12 @@ static void __vm_mem_region_delete(struct kvm_vm *vm, sparsebit_free(®ion->unused_phy_pages); ret = munmap(region->mmap_start, region->mmap_size); TEST_ASSERT(ret == 0, "munmap failed, rc: %i errno: %i", ret, errno); + if (region->fd >= 0) { + /* There's an extra map shen using shared memory. */ + ret = munmap(region->mmap_alias, region->mmap_size); + TEST_ASSERT(ret == 0, "munmap failed, rc: %i errno: %i", ret, errno); + close(region->fd); + } free(region); }