^ Subject line seems to end with a ?
Typo?
On Thu, Jun 13, 2019 at 12:13:29PM +0100, Cristian Marussi wrote:
Added 3 simple mangle testcases that mess with the ucontext_t from within the sig_handler, trying to toggle PSTATE mode bits to trick the system into switching to EL1/EL2/EL3. Expects SIGSEGV on test PASS.
For good measure, we may as well also test for the "h" modes.
I wonder whether this can be macro-ised somehow, since the tests are identical except for the pstate mode field value and the name?
Signed-off-by: Cristian Marussi cristian.marussi@arm.com
.../arm64/signal/testcases/.gitignore | 3 +++ .../mangle_pstate_invalid_mode_el1.c | 25 +++++++++++++++++++ .../mangle_pstate_invalid_mode_el2.c | 25 +++++++++++++++++++ .../mangle_pstate_invalid_mode_el3.c | 25 +++++++++++++++++++ 4 files changed, 78 insertions(+) create mode 100644 tools/testing/selftests/arm64/signal/testcases/mangle_pstate_invalid_mode_el1.c create mode 100644 tools/testing/selftests/arm64/signal/testcases/mangle_pstate_invalid_mode_el2.c create mode 100644 tools/testing/selftests/arm64/signal/testcases/mangle_pstate_invalid_mode_el3.c
diff --git a/tools/testing/selftests/arm64/signal/testcases/.gitignore b/tools/testing/selftests/arm64/signal/testcases/.gitignore index 91f7aee4b666..e7a1d998b650 100644 --- a/tools/testing/selftests/arm64/signal/testcases/.gitignore +++ b/tools/testing/selftests/arm64/signal/testcases/.gitignore @@ -2,3 +2,6 @@ mangle_sp_misaligned mangle_pc_invalid mangle_pstate_invalid_daif_bits mangle_pstate_invalid_state_toggle +mangle_pstate_invalid_mode_el1 +mangle_pstate_invalid_mode_el2 +mangle_pstate_invalid_mode_el3 diff --git a/tools/testing/selftests/arm64/signal/testcases/mangle_pstate_invalid_mode_el1.c b/tools/testing/selftests/arm64/signal/testcases/mangle_pstate_invalid_mode_el1.c new file mode 100644 index 000000000000..9f5bde2e287f --- /dev/null +++ b/tools/testing/selftests/arm64/signal/testcases/mangle_pstate_invalid_mode_el1.c @@ -0,0 +1,25 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* Copyright (C) 2019 ARM Limited */
+#include "test_signals_utils.h" +#include "testcases.h"
+static int mangle_invalid_pstate_run(struct tdescr *td, siginfo_t *si,
ucontext_t *uc)
+{
- ASSERT_GOOD_CONTEXT(uc);
- /* This config should trigger a SIGSEGV by Kernel */
- uc->uc_mcontext.pstate |= PSR_MODE_EL1t;
For cleanliness, should we mask out the old mode field first, even if we expect it to be initiall zero?
[...]
Cheers ---Dave