NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
PR/51356 CVS commit: src/sys
The following reply was made to PR kern/51356; it has been noted by GNATS.
From: "Ryota Ozaki" <ozaki-r%netbsd.org@localhost>
To: gnats-bugs%gnats.NetBSD.org@localhost
Cc:
Subject: PR/51356 CVS commit: src/sys
Date: Sat, 24 Feb 2018 07:37:09 +0000
Module Name: src
Committed By: ozaki-r
Date: Sat Feb 24 07:37:09 UTC 2018
Modified Files:
src/sys/netinet: in.c ip_input.c wqinput.c
src/sys/netinet6: in6.c ip6_input.c
src/sys/rump/net/lib/libnetinet: netinet_component.c
Log Message:
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.218 -r1.219 src/sys/netinet/in.c
cvs rdiff -u -r1.375 -r1.376 src/sys/netinet/ip_input.c
cvs rdiff -u -r1.3 -r1.4 src/sys/netinet/wqinput.c
cvs rdiff -u -r1.259 -r1.260 src/sys/netinet6/in6.c
cvs rdiff -u -r1.192 -r1.193 src/sys/netinet6/ip6_input.c
cvs rdiff -u -r1.10 -r1.11 \
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.
Home |
Main Index |
Thread Index |
Old Index