linux-uconsole/tools/testing/selftests/x86
Dave Hansen 334c0e1b3c x86/selftests/pkeys: Fork() to check for state being preserved
commit e1812933b1 upstream.

There was a bug where the per-mm pkey state was not being preserved across
fork() in the child.  fork() is performed in the pkey selftests, but all of
the pkey activity is performed in the parent.  The child does not perform
any actions sensitive to pkey state.

To make the test more sensitive to these kinds of bugs, add a fork() where
the parent exits, and execution continues in the child.

To achieve this let the key exhaustion test not terminate at the first
allocation failure and fork after 2*NR_PKEYS loops and continue in the
child.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: bp@alien8.de
Cc: hpa@zytor.com
Cc: peterz@infradead.org
Cc: mpe@ellerman.id.au
Cc: will.deacon@arm.com
Cc: luto@kernel.org
Cc: jroedel@suse.de
Cc: stable@vger.kernel.org
Cc: Borislav Petkov <bp@alien8.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Joerg Roedel <jroedel@suse.de>
Link: https://lkml.kernel.org/r/20190102215657.585704B7@viggo.jf.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-01-31 08:14:39 +01:00
..
.gitignore selftests: x86: add missing executables to .gitignore 2017-05-03 10:55:20 -06:00
check_cc.sh selftests, x86: Rework x86 target architecture detection 2015-05-12 20:02:40 -06:00
check_initial_reg_state.c selftests/x86: Add check_initial_reg_state() 2016-01-29 09:46:37 +01:00
entry_from_vm86.c selftests/x86/entry_from_vm86: Add test cases for POPF 2018-03-14 09:21:01 +01:00
fsgsbase.c selftests/x86/fsgsbase: Test selectors 1, 2, and 3 2017-08-10 17:15:13 +02:00
ioperm.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
iopl.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ldt_gdt.c x86/ldt: Make the LDT mapping RO 2017-12-23 21:13:01 +01:00
Makefile selftests/x86: Detect -no-pie availability 2018-05-30 15:21:51 -06:00
mov_ss_trap.c x86/selftests: Add mov_to_ss test 2018-05-14 11:14:45 +02:00
mpx-debug.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mpx-dig.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mpx-hw.h x86/mpx/selftests: Fix up weird arrays 2017-11-21 09:34:52 +01:00
mpx-mini-test.c x86/mpx/selftests: Adjust the self-test to fresh distros that export the MPX ABI 2018-05-14 11:14:45 +02:00
mpx-mm.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pkey-helpers.h x86/pkeys/selftests: Avoid printf-in-signal deadlocks 2018-05-14 11:14:45 +02:00
protection_keys.c x86/selftests/pkeys: Fork() to check for state being preserved 2019-01-31 08:14:39 +01:00
ptrace_syscall.c selftests/x86/ptrace_syscall: Fix for yet more glibc interference 2018-03-19 09:06:15 +01:00
raw_syscall_helper_32.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sigreturn.c selftests/x86/sigreturn: Do minor cleanups 2018-06-27 09:36:56 +02:00
single_step_syscall.c selftests/x86: Do not rely on "int $0x80" in single_step_syscall.c 2018-02-15 01:15:48 +01:00
syscall_arg_fault.c x86/entry, selftests/x86: Add a test for 32-bit fast syscall arg faults 2015-07-07 10:58:30 +02:00
syscall_nt.c selftests/x86: In syscall_nt, test NT|TF as well 2016-03-10 09:48:12 +01:00
sysret_rip.c selftests/x86: Add a selftest for SYSRET to noncanonical addresses 2017-01-05 09:20:02 +01:00
sysret_ss_attrs.c x86, selftests: Add a test for the "sysret_ss_attrs" bug 2015-05-08 13:33:59 +02:00
test_FCMOV.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
test_FCOMI.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
test_FISTTP.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
test_mremap_vdso.c selftests/x86: Do not rely on "int $0x80" in test_mremap_vdso.c 2018-02-13 09:05:37 +01:00
test_syscall_vdso.c x86/entry/64/compat: Preserve r8-r11 in int $0x80 2018-04-27 17:07:58 +02:00
test_vdso.c x86/vdso: Fix vDSO syscall fallback asm constraint regression 2018-10-04 08:17:50 +02:00
test_vsyscall.c x86/vsyscall/64: Drop "native" vsyscalls 2018-03-08 06:48:15 +01:00
thunks.S x86, selftests: Add a test for the "sysret_ss_attrs" bug 2015-05-08 13:33:59 +02:00
thunks_32.S x86/asm/entry/32, selftests: Add 'test_syscall_vdso' test 2015-09-18 09:40:48 +02:00
trivial_32bit_program.c selftests, x86: Rework x86 target architecture detection 2015-05-12 20:02:40 -06:00
trivial_64bit_program.c selftest, x86: fix incorrect comment 2015-05-26 15:58:41 -06:00
trivial_program.c selftests/x86: Detect -no-pie availability 2018-05-30 15:21:51 -06:00
unwind_vdso.c selftests/x86: Style fixes for the 'unwind_vdso' test 2015-10-14 16:56:28 +02:00
vdso_restorer.c selftests/x86: Test __kernel_sigreturn and __kernel_rt_sigreturn 2016-01-13 10:34:40 +01:00