1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * Copyright (C) 2021 ARM Limited 4 * 5 * Verify that using a streaming mode instruction without enabling it 6 * generates a SIGILL. 7 */ 8 9 #include <signal.h> 10 #include <ucontext.h> 11 #include <sys/prctl.h> 12 13 #include "test_signals_utils.h" 14 #include "testcases.h" 15 16 int sme_trap_no_sm_trigger(struct tdescr *td) 17 { 18 /* SMSTART ZA ; ADDHA ZA0.S, P0/M, P0/M, Z0.S */ 19 asm volatile(".inst 0xd503457f ; .inst 0xc0900000"); 20 21 return 0; 22 } 23 24 int sme_trap_no_sm_run(struct tdescr *td, siginfo_t *si, ucontext_t *uc) 25 { 26 return 1; 27 } 28 29 struct tdescr tde = { 30 .name = "SME trap without SM", 31 .descr = "Check that we get a SIGILL if we use streaming mode without enabling it", 32 .timeout = 3, 33 .feats_required = FEAT_SME, /* We need a SMSTART ZA */ 34 .sanity_disabled = true, 35 .trigger = sme_trap_no_sm_trigger, 36 .run = sme_trap_no_sm_run, 37 .sig_ok = SIGILL, 38 }; 39
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.