37 lines
707 B
C
37 lines
707 B
C
|
// SPDX-License-Identifier: GPL-2.0
|
||
|
/*
|
||
|
* Copyright (C) 2021 ARM Limited
|
||
|
*
|
||
|
* Verify that accessing ZA without enabling it generates a SIGILL.
|
||
|
*/
|
||
|
|
||
|
#include <signal.h>
|
||
|
#include <ucontext.h>
|
||
|
#include <sys/prctl.h>
|
||
|
|
||
|
#include "test_signals_utils.h"
|
||
|
#include "testcases.h"
|
||
|
|
||
|
int sme_trap_za_trigger(struct tdescr *td)
|
||
|
{
|
||
|
/* ZERO ZA */
|
||
|
asm volatile(".inst 0xc00800ff");
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
int sme_trap_za_run(struct tdescr *td, siginfo_t *si, ucontext_t *uc)
|
||
|
{
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
struct tdescr tde = {
|
||
|
.name = "SME ZA trap",
|
||
|
.descr = "Check that we get a SIGILL if we access ZA without enabling",
|
||
|
.timeout = 3,
|
||
|
.sanity_disabled = true,
|
||
|
.trigger = sme_trap_za_trigger,
|
||
|
.run = sme_trap_za_run,
|
||
|
.sig_ok = SIGILL,
|
||
|
};
|