Module Name:    src
Committed By:   martin
Date:           Thu Nov 30 15:57:37 UTC 2017

Modified Files:
        src/sys/compat/common [netbsd-8]: uipc_syscalls_40.c
        src/sys/compat/linux/common [netbsd-8]: linux_socket.c
        src/sys/compat/linux32/common [netbsd-8]: linux32_socket.c
        src/sys/net [netbsd-8]: if.c if_spppsubr.c
        src/sys/netinet [netbsd-8]: ip_carp.c
        src/sys/netinet6 [netbsd-8]: in6.c
        src/sys/netipsec [netbsd-8]: key.c

Log Message:
Pull up following revision(s) (requested by ozaki-r in ticket #407):
        sys/compat/linux32/common/linux32_socket.c: revision 1.28
        sys/net/if.c: revision 1.400
        sys/netipsec/key.c: revision 1.243
        sys/compat/linux/common/linux_socket.c: revision 1.139
        sys/netinet/ip_carp.c: revision 1.93
        sys/netinet6/in6.c: revision 1.252
        sys/netinet6/in6.c: revision 1.253
        sys/netinet6/in6.c: revision 1.254
        sys/net/if_spppsubr.c: revision 1.173
        sys/net/if_spppsubr.c: revision 1.174
        sys/compat/common/uipc_syscalls_40.c: revision 1.14
Protect IFADDR_READER_FOREACH and obtained ifa with psz/psref
Fix usage of FOREACH macro
key_sad.lock is held there so SAVLIST_WRITER_FOREACH is enough.
Protect IFADDR_READER_FOREACH and obtained ifa with psz/psref
Protect IFADDR_READER_FOREACH and obtained ifa with psz/psref (more)
Fix and make consistent of usages of psz/psref in ifconf variants
Remove unnecessary goto because there is no cleanup code to share (NFC)
Tweak a condition; we don't need to care ifacount to be negative
Fix a race condition of in6_ifinit
in6_ifinit checks the number of IPv6 addresses on a given interface and
if it's zero (i.e., an IPv6 address being assigned to the interface
is the first one), call if_addr_init. However, the actual assignment of
the address (ifa_insert) is out of in6_ifinit. The check and the
assignment must be done atomically.
Fix it by holding in6_ifaddr_lock during in6_ifinit and ifa_insert.
And also add missing pserialize to IFADDR_READER_FOREACH.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.13.6.1 src/sys/compat/common/uipc_syscalls_40.c
cvs rdiff -u -r1.138 -r1.138.6.1 src/sys/compat/linux/common/linux_socket.c
cvs rdiff -u -r1.27 -r1.27.6.1 src/sys/compat/linux32/common/linux32_socket.c
cvs rdiff -u -r1.394.2.1 -r1.394.2.2 src/sys/net/if.c
cvs rdiff -u -r1.169.6.1 -r1.169.6.2 src/sys/net/if_spppsubr.c
cvs rdiff -u -r1.90 -r1.90.2.1 src/sys/netinet/ip_carp.c
cvs rdiff -u -r1.245.2.2 -r1.245.2.3 src/sys/netinet6/in6.c
cvs rdiff -u -r1.163.2.3 -r1.163.2.4 src/sys/netipsec/key.c

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

Reply via email to