summaryrefslogtreecommitdiffstats
path: root/sys/netinet6/udp6_usrreq.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netinet6/udp6_usrreq.c')
-rw-r--r--sys/netinet6/udp6_usrreq.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/netinet6/udp6_usrreq.c b/sys/netinet6/udp6_usrreq.c
index 5393740..19cca2c 100644
--- a/sys/netinet6/udp6_usrreq.c
+++ b/sys/netinet6/udp6_usrreq.c
@@ -279,8 +279,6 @@ udp6_input(struct mbuf **mp, int *offp, int proto)
continue;
}
- INP_RLOCK(inp);
-
/*
* Handle socket delivery policy for any-source
* and source-specific multicast. [RFC3678]
@@ -290,6 +288,8 @@ udp6_input(struct mbuf **mp, int *offp, int proto)
struct sockaddr_in6 mcaddr;
int blocked;
+ INP_RLOCK(inp);
+
bzero(&mcaddr, sizeof(struct sockaddr_in6));
mcaddr.sin6_len = sizeof(struct sockaddr_in6);
mcaddr.sin6_family = AF_INET6;
@@ -304,9 +304,11 @@ udp6_input(struct mbuf **mp, int *offp, int proto)
if (blocked == MCAST_NOTSMEMBER ||
blocked == MCAST_MUTED)
UDPSTAT_INC(udps_filtermcast);
- INP_RUNLOCK(inp);
+ INP_RUNLOCK(inp); /* XXX */
continue;
}
+
+ INP_RUNLOCK(inp);
}
if (last != NULL) {
struct mbuf *n;
@@ -423,8 +425,6 @@ udp6_input(struct mbuf **mp, int *offp, int proto)
return (IPPROTO_DONE);
badheadlocked:
- if (inp)
- INP_RUNLOCK(inp);
INP_INFO_RUNLOCK(&V_udbinfo);
badunlocked:
if (m)
OpenPOWER on IntegriCloud