From edf0f2e51b035b0e939bf1e03805760424aa66fe Mon Sep 17 00:00:00 2001 From: kettenis Date: Sun, 24 Dec 2017 10:32:25 +0000 Subject: [PATCH] Generate SIGBUS/BUS_ADRALN when we see a SP Alignment Exception from userland. ok jsg@ --- sys/arch/arm64/arm64/trap.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sys/arch/arm64/arm64/trap.c b/sys/arch/arm64/arm64/trap.c index dfe631791f0..01c3c92114f 100644 --- a/sys/arch/arm64/arm64/trap.c +++ b/sys/arch/arm64/arm64/trap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: trap.c,v 1.12 2017/12/18 20:03:48 kettenis Exp $ */ +/* $OpenBSD: trap.c,v 1.13 2017/12/24 10:32:25 kettenis Exp $ */ /*- * Copyright (c) 2014 Andrew Turner * All rights reserved. @@ -312,6 +312,11 @@ do_el0_sync(struct trapframe *frame) sv.sival_ptr = (void *)frame->tf_elr; trapsignal(p, SIGBUS, 0, BUS_ADRALN, sv); break; + case EXCP_SP_ALIGN: + vfp_save(); + sv.sival_ptr = (void *)frame->tf_sp; + trapsignal(p, SIGBUS, 0, BUS_ADRALN, sv); + break; case EXCP_DATA_ABORT_L: vfp_save(); data_abort(frame, esr, 1, 0); -- 2.20.1