Module Name: src Committed By: martin Date: Mon Feb 26 13:32:01 UTC 2018
Modified Files: src/sys/netinet [netbsd-8]: in.c ip_input.c wqinput.c src/sys/netinet6 [netbsd-8]: in6.c ip6_input.c src/sys/rump/net/lib/libnetinet [netbsd-8]: netinet_component.c Log Message: Pull up following revision(s) (requested by ozaki-r in ticket #588): sys/netinet6/in6.c: revision 1.260 sys/netinet/in.c: revision 1.219 sys/netinet/wqinput.c: revision 1.4 sys/rump/net/lib/libnetinet/netinet_component.c: revision 1.11 sys/netinet/ip_input.c: revision 1.376 sys/netinet6/ip6_input.c: revision 1.193 Avoid a deadlock between softnet_lock and IFNET_LOCK A deadlock occurs because there is a violation of the rule of lock ordering; softnet_lock is held with hodling IFNET_LOCK, which violates the rule. To avoid the deadlock, replace softnet_lock in in_control and in6_control with KERNEL_LOCK. We also need to add some KERNEL_LOCKs to protect the network stack surely. This is required, for example, for PR kern/51356. Fix PR kern/53043 To generate a diff of this commit: cvs rdiff -u -r1.203.2.9 -r1.203.2.10 src/sys/netinet/in.c cvs rdiff -u -r1.355.2.4 -r1.355.2.5 src/sys/netinet/ip_input.c cvs rdiff -u -r1.3 -r1.3.2.1 src/sys/netinet/wqinput.c cvs rdiff -u -r1.245.2.7 -r1.245.2.8 src/sys/netinet6/in6.c cvs rdiff -u -r1.178.2.5 -r1.178.2.6 src/sys/netinet6/ip6_input.c cvs rdiff -u -r1.8.6.1 -r1.8.6.2 \ src/sys/rump/net/lib/libnetinet/netinet_component.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.