diff options
-rw-r--r-- | sys/arch/amd64/amd64/locore.S | 7 | ||||
-rw-r--r-- | sys/arch/arm/arm/sigcode.S | 9 | ||||
-rw-r--r-- | sys/arch/arm64/arm64/locore.S | 10 | ||||
-rw-r--r-- | sys/arch/hppa/hppa/locore.S | 11 | ||||
-rw-r--r-- | sys/arch/i386/i386/locore.s | 6 | ||||
-rw-r--r-- | sys/arch/m88k/m88k/subr.S | 12 | ||||
-rw-r--r-- | sys/arch/macppc/macppc/locore.S | 6 | ||||
-rw-r--r-- | sys/arch/mips64/mips64/lcore_access.S | 6 | ||||
-rw-r--r-- | sys/arch/powerpc64/powerpc64/locore.S | 6 | ||||
-rw-r--r-- | sys/arch/riscv64/riscv64/locore.S | 24 | ||||
-rw-r--r-- | sys/arch/sh/sh/locore_subr.S | 8 | ||||
-rw-r--r-- | sys/arch/sparc64/sparc64/locore.s | 6 |
12 files changed, 35 insertions, 76 deletions
diff --git a/sys/arch/amd64/amd64/locore.S b/sys/arch/amd64/amd64/locore.S index a3d496e44e1..b36ab19d853 100644 --- a/sys/arch/amd64/amd64/locore.S +++ b/sys/arch/amd64/amd64/locore.S @@ -1,4 +1,4 @@ -/* $OpenBSD: locore.S,v 1.142 2023/12/10 16:56:01 deraadt Exp $ */ +/* $OpenBSD: locore.S,v 1.143 2023/12/12 07:37:20 deraadt Exp $ */ /* $NetBSD: locore.S,v 1.13 2004/03/25 18:33:17 drochner Exp $ */ /* @@ -181,13 +181,10 @@ sigcodecall: syscall .globl sigcoderet sigcoderet: - movq $SYS_exit,%rax - syscall - _ALIGN_TRAPS + int3 1: JMP_RETPOLINE(rax) .globl esigcode esigcode: - .globl sigfill sigfill: int3 diff --git a/sys/arch/arm/arm/sigcode.S b/sys/arch/arm/arm/sigcode.S index 70c0f54750e..b2402d8c1a1 100644 --- a/sys/arch/arm/arm/sigcode.S +++ b/sys/arch/arm/arm/sigcode.S @@ -1,4 +1,4 @@ -/* $OpenBSD: sigcode.S,v 1.13 2023/12/10 16:56:01 deraadt Exp $ */ +/* $OpenBSD: sigcode.S,v 1.14 2023/12/12 07:37:20 deraadt Exp $ */ /* $NetBSD: sigcode.S,v 1.6 2003/10/05 19:44:58 matt Exp $ */ /* @@ -63,14 +63,9 @@ sigcodecall: isb .globl sigcoderet sigcoderet: - /* Well if that failed we better exit quick ! */ - mov r12, #SYS_exit - swi 0 - dsb nsh - isb .global esigcode esigcode: - + /* FALLTHROUGH */ .globl sigfill sigfill: udf #0 diff --git a/sys/arch/arm64/arm64/locore.S b/sys/arch/arm64/arm64/locore.S index 9f2faa0d213..771e7eff786 100644 --- a/sys/arch/arm64/arm64/locore.S +++ b/sys/arch/arm64/arm64/locore.S @@ -1,4 +1,4 @@ -/* $OpenBSD: locore.S,v 1.44 2023/12/10 16:56:01 deraadt Exp $ */ +/* $OpenBSD: locore.S,v 1.45 2023/12/12 07:37:20 deraadt Exp $ */ /*- * Copyright (c) 2012-2014 Andrew Turner * All rights reserved. @@ -372,16 +372,10 @@ sigcodecall: isb .globl sigcoderet sigcoderet: - - /* sigreturn failed, exit */ - mov x8, #SYS_exit - svc 0 - dsb nsh - isb END(sigcode) .global esigcode esigcode: - + /* FALLTHROUGH */ .globl sigfill sigfill: udf #0 diff --git a/sys/arch/hppa/hppa/locore.S b/sys/arch/hppa/hppa/locore.S index 28647e5f426..3c952c8bf1d 100644 --- a/sys/arch/hppa/hppa/locore.S +++ b/sys/arch/hppa/hppa/locore.S @@ -1,4 +1,4 @@ -/* $OpenBSD: locore.S,v 1.206 2023/12/10 16:56:01 deraadt Exp $ */ +/* $OpenBSD: locore.S,v 1.207 2023/12/12 07:37:20 deraadt Exp $ */ /* * Copyright (c) 1998-2004 Michael Shalayeff @@ -2872,15 +2872,10 @@ sigcodecall: ldi SYS_sigreturn, t1 .globl sigcoderet sigcoderet: - - ldil L%SYSCALLGATE, r1 - copy ret0, arg0 - .call - ble 4(sr7, r1) - ldi SYS_exit, t1 + break 0,0 ALTENTRY(esigcode) -EXIT(sigcode) +EXIT(sigcode) .globl sigfill sigfill: break 0,0 diff --git a/sys/arch/i386/i386/locore.s b/sys/arch/i386/i386/locore.s index c3a749702a3..b25acfaab5c 100644 --- a/sys/arch/i386/i386/locore.s +++ b/sys/arch/i386/i386/locore.s @@ -1,4 +1,4 @@ -/* $OpenBSD: locore.s,v 1.203 2023/12/10 16:56:01 deraadt Exp $ */ +/* $OpenBSD: locore.s,v 1.204 2023/12/12 07:37:20 deraadt Exp $ */ /* $NetBSD: locore.s,v 1.145 1996/05/03 19:41:19 christos Exp $ */ /*- @@ -346,11 +346,9 @@ sigcodecall: int $0x80 # enter kernel with args on stack .globl sigcoderet sigcoderet: - movl $SYS_exit,%eax - int $0x80 # exit if sigreturn fails .globl esigcode esigcode: - + /* FALLTHROUGH */ .globl sigfill sigfill: int3 diff --git a/sys/arch/m88k/m88k/subr.S b/sys/arch/m88k/m88k/subr.S index 69d79fe859d..ff73eec1553 100644 --- a/sys/arch/m88k/m88k/subr.S +++ b/sys/arch/m88k/m88k/subr.S @@ -1,4 +1,4 @@ -/* $OpenBSD: subr.S,v 1.30 2023/12/10 16:56:01 deraadt Exp $ */ +/* $OpenBSD: subr.S,v 1.31 2023/12/12 07:37:21 deraadt Exp $ */ /* * Mach Operating System * Copyright (c) 1993-1992 Carnegie Mellon University @@ -1138,16 +1138,8 @@ GLOBAL(sigcoderet) #ifdef dontbother /* sigreturn will not return unless it fails */ NOP | success return #endif - or %r13, %r0, SYS_exit - tb0 0, %r0, 450 /* syscall trap, exit */ - /* - * this never returns, but we need to provide fetchable instructions - * for the 88100 pipeline. - */ - NOP - NOP GLOBAL(esigcode) - + /* FALLTHROUGH */ GLOBAL(sigfill) tb0 0, %r0, 130 /* breakpoint */ GLOBAL(sigfillsiz) diff --git a/sys/arch/macppc/macppc/locore.S b/sys/arch/macppc/macppc/locore.S index 76ed02fcee5..d1c59bf5979 100644 --- a/sys/arch/macppc/macppc/locore.S +++ b/sys/arch/macppc/macppc/locore.S @@ -1,4 +1,4 @@ -/* $OpenBSD: locore.S,v 1.63 2023/12/10 16:56:01 deraadt Exp $ */ +/* $OpenBSD: locore.S,v 1.64 2023/12/12 07:37:21 deraadt Exp $ */ /* $NetBSD: locore.S,v 1.2 1996/10/16 19:33:09 ws Exp $ */ /* @@ -1180,10 +1180,8 @@ sigcodecall: sc /* sigreturn(scp) */ .globl sigcoderet sigcoderet: - li %r0,SYS_exit - sc /* exit(errno) */ esigcode: - + /* FALLTHROUGH */ .globl sigfill sigfill: .long 0 # illegal diff --git a/sys/arch/mips64/mips64/lcore_access.S b/sys/arch/mips64/mips64/lcore_access.S index f2106d14ef3..1aeb6c26fa8 100644 --- a/sys/arch/mips64/mips64/lcore_access.S +++ b/sys/arch/mips64/mips64/lcore_access.S @@ -1,4 +1,4 @@ -/* $OpenBSD: lcore_access.S,v 1.35 2023/12/10 16:56:01 deraadt Exp $ */ +/* $OpenBSD: lcore_access.S,v 1.36 2023/12/12 07:37:21 deraadt Exp $ */ /* * Copyright (c) 2001-2003 Opsycon AB (www.opsycon.se / www.opsycon.com) @@ -80,11 +80,9 @@ sigcodecall: syscall .globl sigcoderet sigcoderet: - LI v0, SYS_exit # just in case sigreturn fails - syscall .globl esigcode esigcode: - + /* FALLTHROUGH */ .globl sigfill sigfill: teq zero, zero, 0x52 diff --git a/sys/arch/powerpc64/powerpc64/locore.S b/sys/arch/powerpc64/powerpc64/locore.S index c74b185651c..59c5cb5d2f8 100644 --- a/sys/arch/powerpc64/powerpc64/locore.S +++ b/sys/arch/powerpc64/powerpc64/locore.S @@ -1,4 +1,4 @@ -/* $OpenBSD: locore.S,v 1.47 2023/12/10 16:56:01 deraadt Exp $ */ +/* $OpenBSD: locore.S,v 1.48 2023/12/12 07:37:21 deraadt Exp $ */ /* * Copyright (c) 2020 Mark Kettenis <kettenis@openbsd.org> @@ -42,11 +42,9 @@ sigcodecall: sc .globl sigcoderet sigcoderet: - li %r0, SYS_exit - sc .globl esigcode esigcode: - + /* FALLTHROUGH */ .globl sigfill sigfill: .long 0 diff --git a/sys/arch/riscv64/riscv64/locore.S b/sys/arch/riscv64/riscv64/locore.S index f1f1f2e8be7..f7c3f0f01c5 100644 --- a/sys/arch/riscv64/riscv64/locore.S +++ b/sys/arch/riscv64/riscv64/locore.S @@ -1,4 +1,4 @@ -/* $OpenBSD: locore.S,v 1.16 2023/12/10 16:56:02 deraadt Exp $ */ +/* $OpenBSD: locore.S,v 1.17 2023/12/12 07:37:21 deraadt Exp $ */ /*- * Copyright (c) 2015-2018 Ruslan Bukin <br@bsdpad.com> @@ -236,15 +236,6 @@ initstack: .space USPACE initstack_end: - .globl sigfill -sigfill: - unimp -esigfill: - .globl sigfillsiz -sigfillsiz: - .data - .word esigfill - sigfill - .text ENTRY(sigcode) mv a0, sp @@ -255,13 +246,20 @@ sigcodecall: ecall .globl sigcoderet sigcoderet: - /* sigreturn failed, exit */ - li t0, SYS_exit - ecall + unimp END(sigcode) .globl esigcode esigcode: + .globl sigfill +sigfill: + unimp +esigfill: + .globl sigfillsiz +sigfillsiz: + .data + .word esigfill - sigfill + .data .global esym esym: diff --git a/sys/arch/sh/sh/locore_subr.S b/sys/arch/sh/sh/locore_subr.S index 2bd371ff887..944d1d2372e 100644 --- a/sys/arch/sh/sh/locore_subr.S +++ b/sys/arch/sh/sh/locore_subr.S @@ -1,4 +1,4 @@ -/* $OpenBSD: locore_subr.S,v 1.18 2023/12/10 16:56:02 deraadt Exp $ */ +/* $OpenBSD: locore_subr.S,v 1.19 2023/12/12 07:37:21 deraadt Exp $ */ /* $NetBSD: locore_subr.S,v 1.28 2006/01/23 22:52:09 uwe Exp $ */ /* @@ -45,7 +45,7 @@ #include "assym.h" -#include <sys/syscall.h> /* SYS_sigreturn, SYS_exit */ +#include <sys/syscall.h> /* SYS_sigreturn */ #include <sh/asm.h> #include <sh/locore.h> #include <sh/param.h> /* UPAGES */ @@ -502,13 +502,11 @@ sigcodecall: trapa #0x80 /* and call sigreturn() */ .globl sigcoderet sigcoderet: - mov.l .L_SYS_exit, r0 - trapa #0x80 /* exit if sigreturn fails */ + sleep /* privileged -> illegal? */ /* NOTREACHED */ .align 2 .L_SYS_sigreturn: .long SYS_sigreturn -.L_SYS_exit: .long SYS_exit /* LINTSTUB: Var: char esigcode[1] */ .globl esigcode diff --git a/sys/arch/sparc64/sparc64/locore.s b/sys/arch/sparc64/sparc64/locore.s index 786bb4a7ace..a92c987562d 100644 --- a/sys/arch/sparc64/sparc64/locore.s +++ b/sys/arch/sparc64/sparc64/locore.s @@ -1,4 +1,4 @@ -/* $OpenBSD: locore.s,v 1.203 2023/12/10 16:56:02 deraadt Exp $ */ +/* $OpenBSD: locore.s,v 1.204 2023/12/12 07:37:21 deraadt Exp $ */ /* $NetBSD: locore.s,v 1.137 2001/08/13 06:10:10 jdolecek Exp $ */ /* @@ -5403,11 +5403,9 @@ sigcoderet: sigcodecall: t ST_SYSCALL ! sigreturn(scp) ! sigreturn does not return unless it fails - mov SYS_exit, %g1 ! exit(errno) - t ST_SYSCALL .globl esigcode esigcode: - + /* FALLTHROUGH */ .globl sigfill sigfill: unimp |