[PATCH v6 0/5] selftests/mm: refactor pkey helpers and fix mmap error handling

From: Hongfu Li

Date: Tue Jun 02 2026 - 03:07:57 EST


The main changes in this series are to refactor shared tracing and assertion
helpers into a common file, unify both pkey selftests on pkey_assert() and
per-test tracing for consistent diagnostics, and add missing mmap() return
checks with MAP_FAILED used throughout for readability and consistency.

Hongfu Li (5):
selftests/mm: move pkey selftest helpers to pkey_util.c
selftests/mm: unify pkey sighandler selftest assertions and tracing
selftests/mm: use pkey_assert on clone_raw failure in pkey test
selftests/mm: add missing mmap() return checks in pkey tests
selftests/mm: add missing pthread_create() return checks in pkey tests

tools/testing/selftests/mm/pkey-helpers.h | 4 +-
tools/testing/selftests/mm/pkey-powerpc.h | 2 +-
.../selftests/mm/pkey_sighandler_tests.c | 81 ++++++++--------
tools/testing/selftests/mm/pkey_util.c | 86 +++++++++++++++++
tools/testing/selftests/mm/protection_keys.c | 95 ++-----------------
5 files changed, 141 insertions(+), 127 deletions(-)

---
v6:
- Add missing pthread_create() return checks (new patch 5/5).
- In patch 2/5, call tracing_off() at the start of test_pkru_sigreturn
before the SIGSEGV handler is reset to SIG_DFL, to avoid leaving ftrace
enabled on crash.
v5:
- Use ret instead of child_pid to hold the return value of clone_raw().
- Make tracing_on(), tracing_off() non-static.
Remove cat_into_file() declaration from pkey-helpers.h.
v4:
- Base changes on top of the latest mm-unstable branch.
- Split the first patch into three:
patch 1: move pkey selftest helpers to shared code;
patch 2: unify sighandler selftest assertions and per-test tracing;
patch 3: use pkey_assert() on clone_raw() failure.
- Use ksft_exit_fail_perror() in main() for mmap() failure.
v3:
- Use pkey_assert() for remaining sigaction() and clone_raw() error
checks for consistency.
v2:
- Update commit message
- Move shared tracing and assertion helpers to a common file,
replace assert() with pkey_assert() in sighandler tests
- Drop assert() from main() in protection_keys.c and add a proper error
message instead.
- Link to v1: https://lore.kernel.org/all/20260518082120.3890552-1-lihongfu@xxxxxxxxxx/
--
2.25.1