Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys



Module Name:    src
Committed By:   knakahara
Date:           Fri Nov 18 06:50:04 UTC 2016

Modified Files:
        src/sys/netinet: tcp_usrreq.c udp_usrreq.c
        src/sys/netinet6: dccp6_usrreq.c in6.c mld6.c raw_ip6.c sctp6_usrreq.c
            udp6_usrreq.c

Log Message:
fix: "ifconfig destory" can stalls when "ifconfig" is done parallel.
This problem occurs only if NET_MPSAFE on.

ifconfig destroy side:
    kernel entry point is ifioctl => if_clone_destroy.
    pr_purgeif() acquires softnet_lock, and then ifa_remove() calls
    pserialize_perform() holding softnet_lock.
ifconfig side:
    kernel entry point is socreate.
    pr_attach()(udp_attach_wrapper()) calls sosetlock(). In this call path,
    sosetlock() try to acquire softnet_lock.
These can cause dead lock.


To generate a diff of this commit:
cvs rdiff -u -r1.212 -r1.213 src/sys/netinet/tcp_usrreq.c
cvs rdiff -u -r1.228 -r1.229 src/sys/netinet/udp_usrreq.c
cvs rdiff -u -r1.8 -r1.9 src/sys/netinet6/dccp6_usrreq.c \
    src/sys/netinet6/sctp6_usrreq.c
cvs rdiff -u -r1.221 -r1.222 src/sys/netinet6/in6.c
cvs rdiff -u -r1.74 -r1.75 src/sys/netinet6/mld6.c
cvs rdiff -u -r1.152 -r1.153 src/sys/netinet6/raw_ip6.c
cvs rdiff -u -r1.125 -r1.126 src/sys/netinet6/udp6_usrreq.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index