diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2016-05-23 20:11:50 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2016-05-23 20:11:50 +0000 |
commit | 752aff3e3eb2f7df5d3721d7b719f21604e3d2a5 (patch) | |
tree | 6631b65cbe40db911dc30d6281e982dc4e925456 /sys/arch/hppa | |
parent | f374e960d0262f2b918a1fbee13f24da17c6cdc5 (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.S | 22 |
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 |