summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Bluhm <bluhm@cvs.openbsd.org>2023-11-29 20:40:07 +0000
committerAlexander Bluhm <bluhm@cvs.openbsd.org>2023-11-29 20:40:07 +0000
commitf1ca325f132489b74a1c089a832bbda743cd0def (patch)
tree686051de8fb209b9dcb8b86bc3273f7545170d8e
parentc21d0cebee87fe17da96ac0502345bdcc46b11c7 (diff)
Unlock bind(2) syscall.
For internet sockets sobind() runs with exclusive net lock due to solock(). For unix domain sockets uipc_bind() grabs the kernel lock itself. So sys_bind() is MP safe. Add NOLOCK flag to avoid kernel lock. OK mvs@
-rw-r--r--sys/kern/syscalls.master4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/syscalls.master b/sys/kern/syscalls.master
index 2ed318508f0..5c60c389ffd 100644
--- a/sys/kern/syscalls.master
+++ b/sys/kern/syscalls.master
@@ -1,4 +1,4 @@
-; $OpenBSD: syscalls.master,v 1.250 2023/08/20 15:13:43 visa Exp $
+; $OpenBSD: syscalls.master,v 1.251 2023/11/29 20:40:06 bluhm Exp $
; $NetBSD: syscalls.master,v 1.32 1996/04/23 10:24:21 mycroft Exp $
; @(#)syscalls.master 8.2 (Berkeley) 1/13/94
@@ -221,7 +221,7 @@
101 STD NOLOCK { int sys_pipe2(int *fdp, int flags); }
102 STD NOLOCK { int sys_dup3(int from, int to, int flags); }
103 STD { int sys_sigreturn(struct sigcontext *sigcntxp); }
-104 STD { int sys_bind(int s, const struct sockaddr *name, \
+104 STD NOLOCK { int sys_bind(int s, const struct sockaddr *name, \
socklen_t namelen); }
105 STD NOLOCK { int sys_setsockopt(int s, int level, int name, \
const void *val, socklen_t valsize); }