diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2017-08-14 21:53:35 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2017-08-14 21:53:35 +0000 |
commit | cbd3f53e3dda936ee2f813b06fa62a0690a6e60d (patch) | |
tree | e17c579ee40db770525659c4f4abff509c7cd6f7 | |
parent | 1e37fb8ebde4489a5008d62f99b2114a87bf922e (diff) |
Generate SIGILL for EXCP_UNKNOWN.
ok drahn@
-rw-r--r-- | sys/arch/arm64/arm64/trap.c | 7 |
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); |