CVSROOT: /cvs Module name: src Changes by: m...@cvs.openbsd.org 2016/12/19 01:36:50
Modified files: sys/kern : sys_socket.c uipc_socket.c uipc_socket2.c uipc_syscalls.c uipc_usrreq.c sys/miscfs/fifofs: fifo_vnops.c sys/net : if.c if_spppsubr.c raw_usrreq.c route.c rtsock.c sys/netinet : if_ether.c ip_carp.c ip_divert.c ip_icmp.c ip_input.c ip_ipsp.c ip_output.c raw_ip.c tcp_input.c tcp_timer.c tcp_usrreq.c udp_usrreq.c sys/netinet6 : icmp6.c ip6_divert.c ip6_input.c nd6.c raw_ip6.c sys/nfs : nfs_boot.c nfs_socket.c sys/sys : socketvar.h systm.h Log message: Introduce the NET_LOCK() a rwlock used to serialize accesses to the parts of the network stack that are not yet ready to be executed in parallel or where new sleeping points are not possible. This first pass replace all the entry points leading to ip_output(). This is done to not introduce new sleeping points when trying to acquire ART's write lock, needed when a new L2 entry is created via the RT_RESOLVE. Inputs from and ok bluhm@, ok dlg@