On Sat, Aug 08, 2026, Gokul K wrote:
> 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.
FWIW, the relative obscurity of the path doesn't really matter.
> 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 <[email protected]>
> ---
> 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;
I think I'd prefer the same patter you used in patch 1? I.e.
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..e3b20033a884 100644
--- a/tools/testing/selftests/kvm/x86/nx_huge_pages_test.c
+++ b/tools/testing/selftests/kvm/x86/nx_huge_pages_test.c
@@ -120,7 +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");
- return;
+ goto done;
}
}
@@ -213,6 +213,7 @@ void run_test(int reclaim_period_ms, bool
disable_nx_huge_pages,
check_2m_page_count(vm, disable_nx_huge_pages ? 3 : 2);
check_split_count(vm, 0);
+done:
kvm_vm_free(vm);
}
> }
> }
> --
> 2.54.0
>
>