Implement per-socket `so_lock' rwlock(9) and use it to protect routing
authormvs <mvs@openbsd.org>
Sat, 1 May 2021 16:13:12 +0000 (16:13 +0000)
committermvs <mvs@openbsd.org>
Sat, 1 May 2021 16:13:12 +0000 (16:13 +0000)
commit451a9593c7fddd3eaa43c1bee9b110bf8d38b01d
tree426cba2e6f5d6c580f9ec77fca1f93def8936c55
parentbfc185c1fc344eead3f54156b93fe14638b67e0e
Implement per-socket `so_lock' rwlock(9) and use it to protect routing
(PF_ROUTE) sockets. This can be done because we have no cases where one
thread should lock two sockets simultaneously.

Against the previous version rtm_senddesync_timer() execution was moved
to process context.

Also this time `so_lock' used for routing sockets only but in the future
it will be used to other socket types too.

tested by claudio@

ok claudio@ bluhm@
sys/kern/uipc_socket.c
sys/kern/uipc_socket2.c
sys/net/rtsock.c
sys/sys/socketvar.h