[PATCH v3 0/4] x86/pkeys: update PKRU to enable pkey 0 before

From: Aruna Ramakrishna
Date: Thu Apr 25 2024 - 14:06:03 EST


This version incorporates feedback from Ingo Molnar and Dave Hansen,
and adds a few test cases that exercise this flow.

v3 updates:
- Split the original patch into 3:
- function interface changes
- helper functions
- functional change to write pkru on sigframe
- Enable all pkeys before XSAVE - i.e. wrpkru(0), rather than assuming
that the alt sig stack is always protected by pkey 0.
- Add a few test cases in pkey_sighandler_tests.c.

I had some trouble adding these tests to
tools/testing/selftests/mm/protection_keys.c, so they're in a separate
file.

Aruna Ramakrishna (4):
x86/pkeys: Signal handling function interface changes to accept PKRU
as a parameter
x86/pkeys: Add helper functions to update PKRU on sigframe
x86/pkeys: Update PKRU to enable all pkeys before XSAVE
selftests/mm: Add new testcases for pkeys

arch/x86/include/asm/fpu/signal.h | 3 +-
arch/x86/include/asm/sighandling.h | 10 +-
arch/x86/kernel/fpu/signal.c | 45 ++-
arch/x86/kernel/fpu/xstate.c | 13 +
arch/x86/kernel/fpu/xstate.h | 1 +
arch/x86/kernel/signal.c | 33 +-
arch/x86/kernel/signal_32.c | 8 +-
arch/x86/kernel/signal_64.c | 9 +-
tools/testing/selftests/mm/Makefile | 2 +
tools/testing/selftests/mm/pkey-helpers.h | 11 +-
.../selftests/mm/pkey_sighandler_tests.c | 315 ++++++++++++++++++
tools/testing/selftests/mm/protection_keys.c | 10 -
12 files changed, 422 insertions(+), 38 deletions(-)
create mode 100644 tools/testing/selftests/mm/pkey_sighandler_tests.c

--
2.39.3