git: d920ff6f23f5 - stable/13 - Trap SVE instructions until we have SVE support
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 19 Jul 2022 07:37:23 UTC
The branch stable/13 has been updated by andrew:
URL: https://cgit.FreeBSD.org/src/commit/?id=d920ff6f23f5821e6bd09940432339d1755d5e7a
commit d920ff6f23f5821e6bd09940432339d1755d5e7a
Author: Andrew Turner <andrew@FreeBSD.org>
AuthorDate: 2022-06-24 11:50:28 +0000
Commit: Andrew Turner <andrew@FreeBSD.org>
CommitDate: 2022-07-19 07:03:30 +0000
Trap SVE instructions until we have SVE support
When running on hardware that supports SVE send the correct signal when
an SVE instruction is run.
Sponsored by: The FreeBSD Foundation
(cherry picked from commit ffa5bf8b600a77838be8fbf383382a2e7bafedc6)
---
sys/arm64/arm64/trap.c | 5 +++++
sys/arm64/include/armreg.h | 1 +
2 files changed, 6 insertions(+)
diff --git a/sys/arm64/arm64/trap.c b/sys/arm64/arm64/trap.c
index e9afbd47c0af..e845f998633a 100644
--- a/sys/arm64/arm64/trap.c
+++ b/sys/arm64/arm64/trap.c
@@ -585,6 +585,11 @@ do_el0_sync(struct thread *td, struct trapframe *frame)
panic("VFP exception in userland");
#endif
break;
+ case EXCP_SVE:
+ call_trapsignal(td, SIGILL, ILL_ILLTRP, (void *)frame->tf_elr,
+ exception);
+ userret(td, frame);
+ break;
case EXCP_SVC32:
case EXCP_SVC64:
svc_handler(td, frame);
diff --git a/sys/arm64/include/armreg.h b/sys/arm64/include/armreg.h
index 1e7fefd70dc6..c164ebe9ece6 100644
--- a/sys/arm64/include/armreg.h
+++ b/sys/arm64/include/armreg.h
@@ -301,6 +301,7 @@
#define EXCP_SVC64 0x15 /* SVC trap for AArch64 */
#define EXCP_HVC 0x16 /* HVC trap */
#define EXCP_MSR 0x18 /* MSR/MRS trap */
+#define EXCP_SVE 0x19 /* SVE trap */
#define EXCP_FPAC 0x1c /* Faulting PAC trap */
#define EXCP_INSN_ABORT_L 0x20 /* Instruction abort, from lower EL */
#define EXCP_INSN_ABORT 0x21 /* Instruction abort, from same EL */