summaryrefslogtreecommitdiffstats
path: root/sys/arm64
diff options
context:
space:
mode:
authorandrew <andrew@FreeBSD.org>2016-02-03 17:00:19 +0000
committerandrew <andrew@FreeBSD.org>2016-02-03 17:00:19 +0000
commit1ef2c8adf6388662de306ad64df5252c02e3bfbd (patch)
tree465986f5858450e3771c1204021be25cea2bd40b /sys/arm64
parent9ad64bd8b3b9fdd2ebb2e8a3ccfb22c26b054885 (diff)
downloadFreeBSD-src-1ef2c8adf6388662de306ad64df5252c02e3bfbd.zip
FreeBSD-src-1ef2c8adf6388662de306ad64df5252c02e3bfbd.tar.gz
Handle a misaligned stack pointer exception from userspace. The exception
still needs to be enabled, but this will help with testing. Sponsored by: ABT Systems Ltd
Diffstat (limited to 'sys/arm64')
-rw-r--r--sys/arm64/arm64/trap.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/arm64/arm64/trap.c b/sys/arm64/arm64/trap.c
index 89d6d0c..10e3f41 100644
--- a/sys/arm64/arm64/trap.c
+++ b/sys/arm64/arm64/trap.c
@@ -374,6 +374,10 @@ do_el0_sync(struct trapframe *frame)
case EXCP_UNKNOWN:
el0_excp_unknown(frame);
break;
+ case EXCP_SP_ALIGN:
+ call_trapsignal(td, SIGBUS, BUS_ADRALN, (void *)frame->tf_sp);
+ userret(td, frame);
+ break;
case EXCP_PC_ALIGN:
call_trapsignal(td, SIGBUS, BUS_ADRALN, (void *)frame->tf_elr);
userret(td, frame);
OpenPOWER on IntegriCloud