run_test() returns as soon as it has confirmed that disabling NX huge pages fails with -EPERM, without freeing the VM created a few lines earlier. This is not an obscure path. nx_huge_pages_test.sh runs the test a second time without CAP_SYS_BOOT for any non-root user, and main() calls run_test() with disable_nx_huge_pages=true on its second invocation, so an ordinary run of the wrapper script always takes it. Free the VM before returning. Fixes: b774da3f2e57 ("KVM: selftests: Test disabling NX hugepages on a VM") Signed-off-by: Gokul K --- tools/testing/selftests/kvm/x86/nx_huge_pages_test.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/testing/selftests/kvm/x86/nx_huge_pages_test.c b/tools/testing/selftests/kvm/x86/nx_huge_pages_test.c index 70950067b989..49b70c05daec 100644 --- a/tools/testing/selftests/kvm/x86/nx_huge_pages_test.c +++ b/tools/testing/selftests/kvm/x86/nx_huge_pages_test.c @@ -120,6 +120,7 @@ void run_test(int reclaim_period_ms, bool disable_nx_huge_pages, } else { TEST_ASSERT(r == -1 && errno == EPERM, "This process should not have permission to disable NX huge pages"); + kvm_vm_free(vm); return; } } -- 2.54.0