On Wed, Mar 23, 2022 at 3:54 PM Ricardo Koller <ricarkol@xxxxxxxxxx> 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. > > Signed-off-by: Ricardo Koller <ricarkol@xxxxxxxxxx> Reviewed-by: Ben Gardon <bgardon@xxxxxxxxxx> > --- > tools/testing/selftests/kvm/lib/kvm_util.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > 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); > } > -- > 2.35.1.894.gb6a874cedc-goog >