Convert sodidle() to timeout_set_proc(9), it needs a process context
authormpi <mpi@openbsd.org>
Tue, 20 Jun 2017 09:10:04 +0000 (09:10 +0000)
committermpi <mpi@openbsd.org>
Tue, 20 Jun 2017 09:10:04 +0000 (09:10 +0000)
to grab the rwlock.

Problem reported by Rivo Nurges.

ok bluhm@

sys/kern/uipc_socket.c

index 1241f47..a65a49e 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: uipc_socket.c,v 1.186 2017/05/31 08:55:10 markus Exp $        */
+/*     $OpenBSD: uipc_socket.c,v 1.187 2017/06/20 09:10:04 mpi Exp $   */
 /*     $NetBSD: uipc_socket.c,v 1.21 1996/02/04 02:17:52 christos Exp $        */
 
 /*
@@ -1157,7 +1157,7 @@ sosplice(struct socket *so, int fd, off_t max, struct timeval *tv)
                so->so_idletv = *tv;
        else
                timerclear(&so->so_idletv);
-       timeout_set(&so->so_idleto, soidle, so);
+       timeout_set_proc(&so->so_idleto, soidle, so);
        task_set(&so->so_splicetask, sotask, so);
 
        /*