Patch "x86/pkeys/selftests: Factor out "instruction page"" has been added to the 4.16-stable tree
Subsystems (3)
[email protected]
AppliedThis is a note to let you know that I've just added the patch titled
x86/pkeys/selftests: Factor out "instruction page"
to the 4.16-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
x86-pkeys-selftests-factor-out-instruction-page.patch
and it can be found in the queue-4.16 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Sun Jun 17 12:07:34 CEST 2018
From: Dave Hansen <[email protected]>
Date: Wed, 9 May 2018 10:13:47 -0700
Subject: x86/pkeys/selftests: Factor out "instruction page"
From: Dave Hansen <[email protected]>
[ Upstream commit 3fcd2b2d928904cbf30b01e2c5e4f1dd2f9ab262 ]
We currently have an execute-only test, but it is for the explicit mprotect_pkey() interface. We will soon add a test for the implicit mprotect(PROT_EXEC) enterface. We need this code in both tests.
--- tools/testing/selftests/x86/protection_keys.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-)
tools/testing/selftests/x86/protection_keys.c +17 -4
@@ -1253,12 +1253,9 @@ void test_ptrace_of_child(int *ptr, u16free (plain_ptr_unaligned); } -void test_executing_on_unreadable_memory (int *ptr,u16 pkey) +void *get_pointer_to_instructions (void ) {void *p1; -int scratch; -int ptr_contents; -int ret; p1 =ALIGN_PTR_UP (&lots_o_noops_around_write,PAGE_SIZE );dprintf3 ("&lots_o_noops: %p\n" , &lots_o_noops_around_write);
@@ -1268,7 +1265,23 @@ void test_executing_on_unreadable_memory/* Point 'p1' at the *second* page of the function: */ p1 +=PAGE_SIZE ; +/* +* Try to ensure we fault this in on next touch to ensure +* we get an instruction fault as opposed to a data one +*/ madvise (p1,PAGE_SIZE ,MADV_DONTNEED ); + +return p1; +} + +void test_executing_on_unreadable_memory (int *ptr,u16 pkey) +{ +void *p1; +int scratch; +int ptr_contents; +int ret; + + p1 =get_pointer_to_instructions ();lots_o_noops_around_write (&scratch); ptr_contents =read_ptr (p1);dprintf2 ("ptr (%p) contents@%d: %x\n" , p1, __LINE__, ptr_contents);
Patches currently in stable-queue which might be from [email protected] are
queue-4.16/x86-pkeys-selftests-factor-out-instruction-page.patch queue-4.16/x86-pkeys-selftests-fix-pointer-math.patch queue-4.16/x86-pkeys-selftests-adjust-the-self-test-to-fresh-distros-that-export-the-pkeys-abi.patch queue-4.16/x86-pkeys-selftests-add-a-test-for-pkey-0.patch queue-4.16/x86-pkeys-selftests-stop-using-assert.patch queue-4.16/x86-pkeys-selftests-save-off-prot-for-allocations.patch queue-4.16/x86-pkeys-selftests-remove-dead-debugging-code-fix-dprint_in_signal.patch queue-4.16/x86-mpx-selftests-adjust-the-self-test-to-fresh-distros-that-export-the-mpx-abi.patch queue-4.16/x86-pkeys-selftests-add-prot_exec-test.patch queue-4.16/x86-pkeys-selftests-allow-faults-on-unknown-keys.patch queue-4.16/x86-pkeys-selftests-give-better-unexpected-fault-error-messages.patch queue-4.16/x86-pkeys-selftests-avoid-printf-in-signal-deadlocks.patch queue-4.16/x86-pkeys-selftests-fix-pkey-exhaustion-test-off-by-one.patch