CVSROOT:        /cvs
Module name:    src
Changes by:     bl...@cvs.openbsd.org   2022/03/21 03:12:34

Modified files:
        sys/kern       : kern_sysctl.c 
        sys/netinet    : in_pcb.c in_pcb.h raw_ip.c udp_usrreq.c 
        sys/netinet6   : in6_pcb.c raw_ip6.c 

Log message:
Header netinet/in_pcb.h includes sys/mutex.h now.  Recommit mutex
for PCB tables.  It does not break userland build anymore.

pf_socket_lookup() calls in_pcbhashlookup() in the PCB layer.  To
run pf in parallel, make parts of the stack MP safe.  Protect the
list and hashes in the PCB tables with a mutex.
Note that the protocol notify functions may call pf via tcp_output().
As the pf lock is a sleeping rw_lock, we must not hold a mutex.  To
solve this for now, collect these PCBs in inp_notify list and protect
it with exclusive netlock.
OK sashan@

Reply via email to