diff options
Diffstat (limited to 'sys/netinet6')
-rw-r--r-- | sys/netinet6/in6_pcb.c | 2 | ||||
-rw-r--r-- | sys/netinet6/raw_ip6.c | 3 | ||||
-rw-r--r-- | sys/netinet6/udp6_usrreq.c | 3 |
3 files changed, 3 insertions, 5 deletions
diff --git a/sys/netinet6/in6_pcb.c b/sys/netinet6/in6_pcb.c index a252788..9305ed9 100644 --- a/sys/netinet6/in6_pcb.c +++ b/sys/netinet6/in6_pcb.c @@ -455,7 +455,7 @@ in6_pcbfree(struct inpcb *inp) (void)m_free(inp->inp_options); ip_freemoptions(inp->inp_moptions); inp->inp_vflag = 0; - INP_LOCK_DESTROY(inp); + INP_UNLOCK(inp); uma_zfree(ipi->ipi_zone, inp); } diff --git a/sys/netinet6/raw_ip6.c b/sys/netinet6/raw_ip6.c index 111f525..86ff948 100644 --- a/sys/netinet6/raw_ip6.c +++ b/sys/netinet6/raw_ip6.c @@ -561,14 +561,13 @@ rip6_attach(struct socket *so, int proto, struct thread *td) if (filter == NULL) return ENOMEM; INP_INFO_WLOCK(&ripcbinfo); - error = in_pcballoc(so, &ripcbinfo, "raw6inp"); + error = in_pcballoc(so, &ripcbinfo); if (error) { INP_INFO_WUNLOCK(&ripcbinfo); FREE(filter, M_PCB); return error; } inp = (struct inpcb *)so->so_pcb; - INP_LOCK(inp); INP_INFO_WUNLOCK(&ripcbinfo); inp->inp_vflag |= INP_IPV6; inp->in6p_ip6_nxt = (long)proto; diff --git a/sys/netinet6/udp6_usrreq.c b/sys/netinet6/udp6_usrreq.c index 18f0c81..f031b96 100644 --- a/sys/netinet6/udp6_usrreq.c +++ b/sys/netinet6/udp6_usrreq.c @@ -503,13 +503,12 @@ udp6_attach(struct socket *so, int proto, struct thread *td) return error; } INP_INFO_WLOCK(&udbinfo); - error = in_pcballoc(so, &udbinfo, "udp6inp"); + error = in_pcballoc(so, &udbinfo); if (error) { INP_INFO_WUNLOCK(&udbinfo); return error; } inp = (struct inpcb *)so->so_pcb; - INP_LOCK(inp); INP_INFO_WUNLOCK(&udbinfo); inp->inp_vflag |= INP_IPV6; if ((inp->inp_flags & IN6P_IPV6_V6ONLY) == 0) |