aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorAndrew Turner <andrew@FreeBSD.org>2023-03-31 09:15:45 +0000
committerAndrew Turner <andrew@FreeBSD.org>2023-03-31 09:15:45 +0000
commit3a0cc6fe61ea29334c17dfb71bf24ba9e604ab4c (patch)
tree4a8d3e85987eb5f75af2018e30d2910d92dd72c9 /sys
parent3f0083c4e30ab41fad1e93e4138767df42dbdf20 (diff)
downloadsrc-3a0cc6fe61ea29334c17dfb71bf24ba9e604ab4c.tar.gz
src-3a0cc6fe61ea29334c17dfb71bf24ba9e604ab4c.zip
Handle the arm64 unknown exception separately
Rather than falling through to the default case handle the unknown exception with its own panic message. As ESR_EL1 is zero for this exception stop printing it. Sponsored by: Arm Ltd
Diffstat (limited to 'sys')
-rw-r--r--sys/arm64/arm64/trap.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/arm64/arm64/trap.c b/sys/arm64/arm64/trap.c
index 367a31cbe1de..0ee1bed0c35a 100644
--- a/sys/arm64/arm64/trap.c
+++ b/sys/arm64/arm64/trap.c
@@ -549,9 +549,11 @@ do_el1h_sync(struct thread *td, struct trapframe *frame)
case EXCP_UNKNOWN:
if (undef_insn(1, frame))
break;
- printf("Undefined instruction: %08x\n",
+ print_registers(frame);
+ print_gp_register("far", far);
+ panic("Undefined instruction: %08x",
*(uint32_t *)frame->tf_elr);
- /* FALLTHROUGH */
+ break;
default:
print_registers(frame);
print_gp_register("far", far);