sme_trap_no_sm.c (876B)
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 16int 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 24int sme_trap_no_sm_run(struct tdescr *td, siginfo_t *si, ucontext_t *uc) 25{ 26 return 1; 27} 28 29struct 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};