summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2017-08-14 21:53:34 +0000
committerkettenis <kettenis@openbsd.org>2017-08-14 21:53:34 +0000
commitd5025945878efabd4ea2b0f3631d2f910c521d23 (patch)
tree1abf0b0af648ea3695b9fa497e3d316988219577
parentAdd the amdisplay(4) and nxphdmi(4) drivers. (diff)
downloadwireguard-openbsd-d5025945878efabd4ea2b0f3631d2f910c521d23.tar.xz
wireguard-openbsd-d5025945878efabd4ea2b0f3631d2f910c521d23.zip
Generate SIGILL for EXCP_UNKNOWN.
ok drahn@
-rw-r--r--sys/arch/arm64/arm64/trap.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/arch/arm64/arm64/trap.c b/sys/arch/arm64/arm64/trap.c
index d45c3873f62..537cd199515 100644
--- a/sys/arch/arm64/arm64/trap.c
+++ b/sys/arch/arm64/arm64/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.9 2017/08/09 05:53:11 jsg Exp $ */
+/* $OpenBSD: trap.c,v 1.10 2017/08/14 21:53:34 kettenis Exp $ */
/*-
* Copyright (c) 2014 Andrew Turner
* All rights reserved.
@@ -291,6 +291,11 @@ do_el0_sync(struct trapframe *frame)
refreshcreds(p);
switch(exception) {
+ case EXCP_UNKNOWN:
+ vfp_save();
+ sv.sival_ptr = (void *)frame->tf_elr;
+ trapsignal(p, SIGILL, 0, ILL_ILLOPC, sv);
+ break;
case EXCP_FP_SIMD:
case EXCP_TRAP_FP:
vfp_fault(frame->tf_elr, 0, frame, exception);