From: mvs Date: Wed, 30 Nov 2022 10:20:37 +0000 (+0000) Subject: Unlock getsockopt(2) and setsockopt(2). Unlock them both because at X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=4508fe57aa9bcd116e100ab49fdae088d89563e8;p=openbsd Unlock getsockopt(2) and setsockopt(2). Unlock them both because at protocol layer they follow the same (*pr_ctloutput)() handlers. At sockets layer we touch only per-socket data, which is solock() protected. At protocol layer, udp(4), unix(4) and key management sockets have no (*pr_ctloutput)() handlers. route_ctloutput() touches only per socket data, which is solock() protected. inet{,6} globals are protected by netlock, which is solock() backend for corresponding sockets. ok bluhm@ --- diff --git a/sys/kern/syscalls.master b/sys/kern/syscalls.master index 56baf29dc8c..99554dbfc27 100644 --- a/sys/kern/syscalls.master +++ b/sys/kern/syscalls.master @@ -1,4 +1,4 @@ -; $OpenBSD: syscalls.master,v 1.236 2022/11/09 10:26:28 mpi Exp $ +; $OpenBSD: syscalls.master,v 1.237 2022/11/30 10:20:37 mvs Exp $ ; $NetBSD: syscalls.master,v 1.32 1996/04/23 10:24:21 mycroft Exp $ ; @(#)syscalls.master 8.2 (Berkeley) 1/13/94 @@ -223,7 +223,7 @@ 103 STD { int sys_sigreturn(struct sigcontext *sigcntxp); } 104 STD { int sys_bind(int s, const struct sockaddr *name, \ socklen_t namelen); } -105 STD { int sys_setsockopt(int s, int level, int name, \ +105 STD NOLOCK { int sys_setsockopt(int s, int level, int name, \ const void *val, socklen_t valsize); } 106 STD { int sys_listen(int s, int backlog); } 107 STD { int sys_chflagsat(int fd, const char *path, \ @@ -249,7 +249,7 @@ struct timespec *timeout); } 117 STD NOLOCK { int sys_sendmmsg(int s, struct mmsghdr *mmsg,\ unsigned int vlen, int flags); } -118 STD { int sys_getsockopt(int s, int level, int name, \ +118 STD NOLOCK { int sys_getsockopt(int s, int level, int name, \ void *val, socklen_t *avalsize); } 119 STD { int sys_thrkill(pid_t tid, int signum, void *tcb); } 120 STD NOLOCK { ssize_t sys_readv(int fd, \