linux/tools/testing/selftests/x86
Xin Li (Intel) 2cb89aef98 selftests/x86: Add a test to detect infinite SIGTRAP handler loop
commit f287822688 upstream.

When FRED is enabled, if the Trap Flag (TF) is set without an external
debugger attached, it can lead to an infinite loop in the SIGTRAP
handler.  To avoid this, the software event flag in the augmented SS
must be cleared, ensuring that no single-step trap remains pending when
ERETU completes.

This test checks for that specific scenario—verifying whether the kernel
correctly prevents an infinite SIGTRAP loop in this edge case when FRED
is enabled.

The test should _always_ pass with IDT event delivery, thus no need to
disable the test even when FRED is not enabled.

Signed-off-by: Xin Li (Intel) <xin@zytor.com>
Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Tested-by: Sohil Mehta <sohil.mehta@intel.com>
Cc:stable@vger.kernel.org
Link: https://lore.kernel.org/all/20250609084054.2083189-3-xin%40zytor.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2025-06-27 11:11:38 +01:00
..
bugs selftest/x86/bugs: Add selftests for ITS 2025-05-18 08:24:59 +02:00
.gitignore selftests/x86/pkeys: move selftests to arch-neutral directory 2020-06-04 19:06:26 -07:00
amx.c selftests/x86: remove (or use) unused variables and functions 2024-07-11 11:23:55 -06:00
check_cc.sh selftests/x86: Add validity check and allow field splitting 2022-02-17 11:55:17 -08:00
check_initial_reg_state.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
clang_helpers_32.S selftests/x86: build fsgsbase_restore.c with clang 2024-07-11 11:23:55 -06:00
clang_helpers_64.S selftests/x86: build sysret_rip.c with clang 2024-07-11 11:23:55 -06:00
corrupt_xstate_header.c selftests/x86/corrupt_xstate_header: Use provided __cpuid_count() macro 2022-04-25 15:13:03 -06:00
entry_from_vm86.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 257 2019-06-05 17:30:27 +02:00
fsgsbase.c selftests/x86: remove (or use) unused variables and functions 2024-07-11 11:23:55 -06:00
fsgsbase_restore.c selftests/x86: build fsgsbase_restore.c with clang 2024-07-11 11:23:55 -06:00
helpers.h selftests/x86: Use __builtin_ia32_read/writeeflags 2021-01-12 12:31:28 +01:00
ioperm.c selftests/x86/ioperm: Extend testing so the shared bitmap is exercised 2019-11-16 11:24:04 +01:00
iopl.c selftests/x86/iopl: Adjust to the faked iopl CLI/STI usage 2021-10-30 23:18:04 +02:00
lam.c linux_kselftest-next-6.10-rc1 2024-05-14 11:36:54 -07:00
ldt_gdt.c selftests/x86/ldt_gdt: remove unneeded semicolon 2021-02-08 16:32:52 -07:00
Makefile selftests/x86: Add a test to detect infinite SIGTRAP handler loop 2025-06-27 11:11:38 +01:00
mov_ss_trap.c selftests/x86: Fix error: variably modified 'altstack_data' at file scope 2021-08-25 16:54:39 -06:00
nx_stack.c selftests/x86/mm: Add new test that userspace stack is in fact NX 2023-10-03 21:00:45 +02:00
ptrace_syscall.c selftests/x86/ptrace_syscall_32: Fix no-vDSO segfault 2020-03-20 11:28:47 +01:00
raw_syscall_helper_32.S selftests/x86: Add missing .note.GNU-stack sections 2020-11-24 13:55:39 +01:00
sigaltstack.c selftest/x86/signal: Include test cases for validating sigaltstack 2021-05-19 12:45:07 +02:00
sigreturn.c selftests/x86: fix printk warnings reported by clang 2024-07-11 11:23:55 -06:00
sigtrap_loop.c selftests/x86: Add a test to detect infinite SIGTRAP handler loop 2025-06-27 11:11:38 +01:00
single_step_syscall.c selftests/x86: Fix error: variably modified 'altstack_data' at file scope 2021-08-25 16:54:39 -06:00
srso.c Documentation/srso: Document a method for checking safe RET operates properly 2024-08-27 09:16:35 +02:00
syscall_arg_fault.c selftests/x86: remove (or use) unused variables and functions 2024-07-11 11:23:55 -06:00
syscall_nt.c x86/entry, selftests: Further improve user entry sanity checks 2020-07-04 19:47:25 +02:00
syscall_numbering.c selftests/x86/syscall: Add tests under ptrace to syscall_numbering_64 2021-05-20 15:19:48 +02:00
sysret_rip.c selftests/x86: build sysret_rip.c with clang 2024-07-11 11:23:55 -06:00
sysret_ss_attrs.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +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 selftests: x86: test_FISTTP: use fisttps instead of ambiguous fisttp 2024-07-11 11:23:55 -06:00
test_mremap_vdso.c selftests: x86: test_mremap_vdso: conform test to TAP format output 2024-05-06 13:57:19 -06:00
test_shadow_stack.c selftests/x86: Add return uprobe shadow stack test 2024-06-12 08:44:28 +09:00
test_syscall_vdso.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
test_vsyscall.c selftests/x86: fix printk warnings reported by clang 2024-07-11 11:23:55 -06:00
thunks.S selftests/x86: Add missing .note.GNU-stack sections 2020-11-24 13:55:39 +01:00
thunks_32.S selftests/x86: Add a missing .note.GNU-stack section to thunks_32.S 2021-03-18 11:05:14 +01:00
trivial_32bit_program.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 257 2019-06-05 17:30:27 +02:00
trivial_64bit_program.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 257 2019-06-05 17:30:27 +02:00
trivial_program.c selftests/x86: Detect -no-pie availability 2018-05-30 15:21:51 -06:00
unwind_vdso.c selftests/x86: Consolidate and fix get/set_eflags() helpers 2020-07-01 10:00:27 +02:00
vdso_restorer.c selftests/x86: remove (or use) unused variables and functions 2024-07-11 11:23:55 -06:00