summaryrefslogtreecommitdiff
path: root/sys/arch/hppa
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2016-05-23 20:11:50 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2016-05-23 20:11:50 +0000
commit752aff3e3eb2f7df5d3721d7b719f21604e3d2a5 (patch)
tree6631b65cbe40db911dc30d6281e982dc4e925456 /sys/arch/hppa
parentf374e960d0262f2b918a1fbee13f24da17c6cdc5 (diff)
Place a cpu-dependent trap/illegal instruction over the remainder of the
sigtramp page, so that it will generate a nice kernel fault if touched. While here, move most of the sigtramps to the .rodata segment, because they are not executed in the kernel. Also some preparation for sliding the actual sigtramp forward (will need some gdb changes) ok mlarkin kettenis
Diffstat (limited to 'sys/arch/hppa')
-rw-r--r--sys/arch/hppa/hppa/locore.S22
1 files changed, 20 insertions, 2 deletions
diff --git a/sys/arch/hppa/hppa/locore.S b/sys/arch/hppa/hppa/locore.S
index 037e3b8e72a..785da2d1daf 100644
--- a/sys/arch/hppa/hppa/locore.S
+++ b/sys/arch/hppa/hppa/locore.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.S,v 1.194 2016/05/10 18:39:44 deraadt Exp $ */
+/* $OpenBSD: locore.S,v 1.195 2016/05/23 20:11:49 deraadt Exp $ */
/*
* Copyright (c) 1998-2004 Michael Shalayeff
@@ -3027,7 +3027,14 @@ EXIT(hw_cpu_spinup_trampoline)
/*
* Signal "trampoline" code. Invoked from RTE setup by sendsig().
*/
-ENTRY(sigcode,0)
+ .section .rodata
+ .align 4
+ .export sigcode, entry
+ .label sigcode
+ .proc
+ .callinfo frame=0,calls, save_rp, save_sp
+ .entry
+sigcode:
bb,>=,n arg3, 30, sigcode_call
dep r0, 31, 2, arg3
ldw 4(arg3), r19
@@ -3053,4 +3060,15 @@ sigcoderet:
ALTENTRY(esigcode)
EXIT(sigcode)
+ .globl sigfill
+sigfill:
+ break 0,0
+esigfill:
+ .align 4
+ .globl sigfillsiz
+sigfillsiz:
+ .word esigfill - sigfill
+
+ .text
+
.end