Download raw body.
unlock socket splice idle timeout
Hi,
The socket splice idle timeout does not need kernel lock.
ok?
bluhm
Index: kern/uipc_socket.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/kern/uipc_socket.c,v
diff -u -p -r1.340 uipc_socket.c
--- kern/uipc_socket.c 29 Jul 2024 10:35:22 -0000 1.340
+++ kern/uipc_socket.c 31 Jul 2024 17:36:32 -0000
@@ -361,7 +361,8 @@ sofree(struct socket *so, int keep_lock)
#ifdef SOCKET_SPLICE
if (so->so_sp) {
/* Reuse splice idle, sounsplice() has been called before. */
- timeout_set_proc(&so->so_sp->ssp_idleto, soreaper, so);
+ timeout_set_flags(&so->so_sp->ssp_idleto, soreaper, so,
+ KCLOCK_NONE, TIMEOUT_PROC | TIMEOUT_MPSAFE);
timeout_add(&so->so_sp->ssp_idleto, 0);
} else
#endif /* SOCKET_SPLICE */
@@ -1487,7 +1488,8 @@ sosplice(struct socket *so, int fd, off_
so->so_idletv = *tv;
else
timerclear(&so->so_idletv);
- timeout_set_proc(&so->so_idleto, soidle, so);
+ timeout_set_flags(&so->so_idleto, soidle, so,
+ KCLOCK_NONE, TIMEOUT_PROC | TIMEOUT_MPSAFE);
task_set(&so->so_splicetask, sotask, so);
/*
unlock socket splice idle timeout