[PATCH] selftests/proc: proc-empty-vm: handle CPUs without protection keys
From: Kurt Lin
Date: Mon Nov 09 2026 - 10:24:58 EST
On x86 CPUs without protection keys, pkey_alloc() fails with ENOSPC,
as documented in pkey_alloc(2). protection_key_support() only expects
ENOSYS or EINVAL, so the test fails on such machines, e.g. an Intel
Core i5-7200U:
protection_key_support: error: rv -1, errno 28
Treat ENOSPC as "no protection key support" as well.
An AI coding assistant (Claude) was used to analyze the failure and to
draft the fix and this changelog. Tested on v7.4-rc1 on the machine
above; the test now passes.
Fixes: bf5add391eeb ("proc: test ProtectionKey in proc-empty-vm test")
Signed-off-by: Kurt Lin <lylin1023@xxxxxxxxx>
---
tools/testing/selftests/proc/proc-empty-vm.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tools/testing/selftests/proc/proc-empty-vm.c b/tools/testing/selftests/proc/proc-empty-vm.c
index b3f898aab4ab..a9d3c973a663 100644
--- a/tools/testing/selftests/proc/proc-empty-vm.c
+++ b/tools/testing/selftests/proc/proc-empty-vm.c
@@ -77,6 +77,9 @@ static int protection_key_support(void)
} else if (rv == -1 && errno == EINVAL) {
// ospke=n
return 0;
+ } else if (rv == -1 && errno == ENOSPC) {
+ // CPU without protection keys
+ return 0;
} else {
fprintf(stderr, "%s: error: rv %ld, errno %d\n", __func__, rv, errno);
exit(EXIT_FAILURE);
--
2.56.0