]> www.infradead.org Git - users/dwmw2/linux.git/commit
x86/pkeys: Add helper functions to update PKRU on the sigframe
authorAruna Ramakrishna <aruna.ramakrishna@oracle.com>
Fri, 2 Aug 2024 06:13:15 +0000 (06:13 +0000)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 2 Aug 2024 12:12:21 +0000 (14:12 +0200)
commit84ee6e8d195e4af4c6c4c961bbf9266bdc8b90ac
tree144dd648144c88acc9be01e8a41f65bc5fac6022
parent24cf2bc982ffe02aeffb4a3885c71751a2c7023b
x86/pkeys: Add helper functions to update PKRU on the sigframe

In the case where a user thread sets up an alternate signal stack protected
by the default PKEY (i.e. PKEY 0), while the thread's stack is protected by
a non-zero PKEY, both these PKEYS have to be enabled in the PKRU register
for the signal to be delivered to the application correctly. However, the
PKRU value restored after handling the signal must not enable this extra
PKEY (i.e. PKEY 0) - i.e., the PKRU value in the sigframe has to be
overwritten with the user-defined value.

Add helper functions that will update PKRU value in the sigframe after
XSAVE.

Note that sig_prepare_pkru() makes no assumption about which PKEY could
be used to protect the altstack (i.e. it may not be part of init_pkru),
and so enables all PKEYS.

No functional change.

Signed-off-by: Aruna Ramakrishna <aruna.ramakrishna@oracle.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/all/20240802061318.2140081-3-aruna.ramakrishna@oracle.com
arch/x86/kernel/fpu/signal.c
arch/x86/kernel/fpu/xstate.c
arch/x86/kernel/fpu/xstate.h
arch/x86/kernel/signal.c