CVSROOT: /cvs Module name: src Changes by: m...@cvs.openbsd.org 2024/04/30 11:59:15
Modified files: sys/kern : sys_socket.c uipc_socket.c uipc_socket2.c Log message: Push solock() down to sosend() for SOCK_RAW sockets. Raw sockets are the simplest inet sockets, so use them to start landing `sb_mtx' mutex(9) protection for `so_snd' buffer. Now solock() is taken only around pru_send*(), the rest of sosend() serialized by sblock() and `sb_mtx'. The unlocked SS_ISCONNECTED check is fine, because rip{,6}_send() check it. Also, previously the SS_ISCONNECTED could be lost due to solock() release around following m_getuio(). ok bluhm