Index | Thread | Search

From:
Alexander Bluhm <bluhm@openbsd.org>
Subject:
solisten() shared netlock
To:
tech@openbsd.org
Date:
Thu, 19 Jun 2025 19:56:44 +0200

Download raw body.

Thread
Hi,

tcp_listen() looks MP safe.  Let's do listen(2) syscall in parallel.

ok?

bluhm

Index: kern/uipc_syscalls.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/kern/uipc_syscalls.c,v
diff -u -p -r1.222 uipc_syscalls.c
--- kern/uipc_syscalls.c	16 Jan 2025 16:35:01 -0000	1.222
+++ kern/uipc_syscalls.c	19 Jun 2025 17:21:29 -0000
@@ -210,9 +210,9 @@ sys_listen(struct proc *p, void *v, regi
 	so = fp->f_data;
 	if (so->so_state & SS_YP)
 		return ENOTSOCK;
-	solock(so);
+	solock_shared(so);
 	error = solisten(so, SCARG(uap, backlog));
-	sounlock(so);
+	sounlock_shared(so);
 	FRELE(fp, p);
 	return (error);
 }