summaryrefslogtreecommitdiffstats
path: root/sys/netinet6/udp6_usrreq.c
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2008-07-07 10:11:17 +0000
committerrwatson <rwatson@FreeBSD.org>2008-07-07 10:11:17 +0000
commit00f0ab40d48c3094bbaaa6328309780f40481686 (patch)
tree9d6a0d2f83b80e77085e1fb354899f70bedb3c25 /sys/netinet6/udp6_usrreq.c
parent55dcd10be46c76debc8c6e83e12faa48f8f92576 (diff)
downloadFreeBSD-src-00f0ab40d48c3094bbaaa6328309780f40481686.zip
FreeBSD-src-00f0ab40d48c3094bbaaa6328309780f40481686.tar.gz
Drop read lock on udbinfo earlier during delivery to the last matching
UDP socket for a datagram; the inpcb read lock is sufficient to provide inpcb stability during udp6_append(). MFC after: 1 month
Diffstat (limited to 'sys/netinet6/udp6_usrreq.c')
-rw-r--r--sys/netinet6/udp6_usrreq.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/netinet6/udp6_usrreq.c b/sys/netinet6/udp6_usrreq.c
index a3cf3e1..4f8e993 100644
--- a/sys/netinet6/udp6_usrreq.c
+++ b/sys/netinet6/udp6_usrreq.c
@@ -344,9 +344,9 @@ udp6_input(struct mbuf **mp, int *offp, int proto)
return (IPPROTO_DONE);
}
INP_RLOCK(inp);
+ INP_INFO_RUNLOCK(&udbinfo);
udp6_append(inp, m, off, &fromsa);
INP_RUNLOCK(inp);
- INP_INFO_RUNLOCK(&udbinfo);
return (IPPROTO_DONE);
badheadlocked:
OpenPOWER on IntegriCloud