diff options
| author | Michael Tuexen <tuexen@FreeBSD.org> | 2020-02-18 21:25:17 +0000 |
|---|---|---|
| committer | Michael Tuexen <tuexen@FreeBSD.org> | 2020-02-18 21:25:17 +0000 |
| commit | 868b51f2340e78285761b2fec32e3048202ab516 (patch) | |
| tree | 13aec21dd0529cefad019810254691054de6006a /sys/netinet6 | |
| parent | 9a4a1be02c2a9e03cc92418b64d8b238effd26a4 (diff) | |
Notes
Diffstat (limited to 'sys/netinet6')
| -rw-r--r-- | sys/netinet6/sctp6_usrreq.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/netinet6/sctp6_usrreq.c b/sys/netinet6/sctp6_usrreq.c index fe1328a4de5ee..4af78d8f55476 100644 --- a/sys/netinet6/sctp6_usrreq.c +++ b/sys/netinet6/sctp6_usrreq.c @@ -111,7 +111,7 @@ sctp6_input_with_port(struct mbuf **i_pak, int *offp, uint16_t port) } } ip6 = mtod(m, struct ip6_hdr *); - sh = (struct sctphdr *)(mtod(m, caddr_t) + iphlen); + sh = (struct sctphdr *)(mtod(m, caddr_t)+iphlen); ch = (struct sctp_chunkhdr *)((caddr_t)sh + sizeof(struct sctphdr)); offset -= sizeof(struct sctp_chunkhdr); memset(&src, 0, sizeof(struct sockaddr_in6)); @@ -481,6 +481,7 @@ SYSCTL_PROC(_net_inet6_sctp6, OID_AUTO, getcred, CTLTYPE_OPAQUE | CTLFLAG_RW, static void sctp6_abort(struct socket *so) { + struct epoch_tracker et; struct sctp_inpcb *inp; uint32_t flags; @@ -489,6 +490,7 @@ sctp6_abort(struct socket *so) SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP6_USRREQ, EINVAL); return; } + NET_EPOCH_ENTER(et); sctp_must_try_again: flags = inp->sctp_flags; #ifdef SCTP_LOG_CLOSING @@ -517,6 +519,7 @@ sctp_must_try_again: goto sctp_must_try_again; } } + NET_EPOCH_EXIT(et); return; } @@ -776,9 +779,12 @@ connected_type: * optionaly switch back to this code (by changing back the * defininitions but this is not advisable. */ + struct epoch_tracker et; int ret; + NET_EPOCH_ENTER(et); ret = sctp_output(inp, inp->pkt, addr, inp->control, p, flags); + NET_EPOCH_EXIT(et); inp->pkt = NULL; inp->control = NULL; return (ret); @@ -790,6 +796,7 @@ connected_type: static int sctp6_connect(struct socket *so, struct sockaddr *addr, struct thread *p) { + struct epoch_tracker et; uint32_t vrf_id; int error = 0; struct sctp_inpcb *inp; @@ -924,8 +931,10 @@ sctp6_connect(struct socket *so, struct sockaddr *addr, struct thread *p) } SCTP_SET_STATE(stcb, SCTP_STATE_COOKIE_WAIT); (void)SCTP_GETTIME_TIMEVAL(&stcb->asoc.time_entered); + NET_EPOCH_ENTER(et); sctp_send_initiate(inp, stcb, SCTP_SO_LOCKED); SCTP_TCB_UNLOCK(stcb); + NET_EPOCH_EXIT(et); return (error); } |
