aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet
diff options
context:
space:
mode:
authorGeorge V. Neville-Neil <gnn@FreeBSD.org>2017-01-04 02:19:13 +0000
committerGeorge V. Neville-Neil <gnn@FreeBSD.org>2017-01-04 02:19:13 +0000
commit2b9c9984137e3982e2d321eec23e43ed2589128a (patch)
treec2a653edc87da424d268dd456a9592143f84ab8d /sys/netinet
parent593b0c84208b45c2fbe3a12f076e13d81ee602a8 (diff)
downloadsrc-2b9c9984137e3982e2d321eec23e43ed2589128a.tar.gz
src-2b9c9984137e3982e2d321eec23e43ed2589128a.zip
Fix DTrace TCP tracepoints to not use mtod() as it is both unnecessary and
dangerous. Those wanting data from an mbuf should use DTrace itself to get the data. PR: 203409 Reviewed by: hiren MFC after: 1 week Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D9035
Notes
Notes: svn path=/head/; revision=311225
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/tcp_input.c25
-rw-r--r--sys/netinet/tcp_output.c2
-rw-r--r--sys/netinet/tcp_subr.c7
3 files changed, 16 insertions, 18 deletions
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
index c7fbb98e481f..e3b087dfcb5d 100644
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -1408,7 +1408,7 @@ tfo_socket_result:
tcp_trace(TA_INPUT, ostate, tp,
(void *)tcp_saveipgen, &tcp_savetcp, 0);
#endif
- TCP_PROBE3(debug__input, tp, th, mtod(m, const char *));
+ TCP_PROBE3(debug__input, tp, th, m);
tcp_dooptions(&to, optp, optlen, TO_SYN);
#ifdef TCP_RFC7413
if (syncache_add(&inc, &to, th, inp, &so, m, NULL, NULL))
@@ -1456,7 +1456,7 @@ tfo_socket_result:
}
#endif
- TCP_PROBE5(receive, NULL, tp, mtod(m, const char *), tp, th);
+ TCP_PROBE5(receive, NULL, tp, m, tp, th);
/*
* Segment belongs to a connection in SYN_SENT, ESTABLISHED or later
@@ -1468,7 +1468,7 @@ tfo_socket_result:
return (IPPROTO_DONE);
dropwithreset:
- TCP_PROBE5(receive, NULL, tp, mtod(m, const char *), tp, th);
+ TCP_PROBE5(receive, NULL, tp, m, tp, th);
if (ti_locked == TI_RLOCKED) {
INP_INFO_RUNLOCK(&V_tcbinfo);
@@ -1492,7 +1492,7 @@ dropwithreset:
dropunlock:
if (m != NULL)
- TCP_PROBE5(receive, NULL, tp, mtod(m, const char *), tp, th);
+ TCP_PROBE5(receive, NULL, tp, m, tp, th);
if (ti_locked == TI_RLOCKED) {
INP_INFO_RUNLOCK(&V_tcbinfo);
@@ -1826,8 +1826,7 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, struct socket *so,
(void *)tcp_saveipgen,
&tcp_savetcp, 0);
#endif
- TCP_PROBE3(debug__input, tp, th,
- mtod(m, const char *));
+ TCP_PROBE3(debug__input, tp, th, m);
if (tp->snd_una == tp->snd_max)
tcp_timer_activate(tp, TT_REXMT, 0);
else if (!tcp_timer_active(tp, TT_PERSIST))
@@ -1873,7 +1872,7 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, struct socket *so,
tcp_trace(TA_INPUT, ostate, tp,
(void *)tcp_saveipgen, &tcp_savetcp, 0);
#endif
- TCP_PROBE3(debug__input, tp, th, mtod(m, const char *));
+ TCP_PROBE3(debug__input, tp, th, m);
/*
* Automatic sizing of receive socket buffer. Often the send
@@ -2035,7 +2034,7 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, struct socket *so,
}
if ((thflags & (TH_ACK|TH_RST)) == (TH_ACK|TH_RST)) {
TCP_PROBE5(connect__refused, NULL, tp,
- mtod(m, const char *), tp, th);
+ m, tp, th);
tp = tcp_drop(tp, ECONNREFUSED);
}
if (thflags & TH_RST)
@@ -2088,7 +2087,7 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, struct socket *so,
} else {
tcp_state_change(tp, TCPS_ESTABLISHED);
TCP_PROBE5(connect__established, NULL, tp,
- mtod(m, const char *), tp, th);
+ m, tp, th);
cc_conn_init(tp);
tcp_timer_activate(tp, TT_KEEP,
TP_KEEPIDLE(tp));
@@ -2468,7 +2467,7 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, struct socket *so,
} else {
tcp_state_change(tp, TCPS_ESTABLISHED);
TCP_PROBE5(accept__established, NULL, tp,
- mtod(m, const char *), tp, th);
+ m, tp, th);
#ifdef TCP_RFC7413
if (tp->t_tfo_pending) {
tcp_fastopen_decrement_counter(tp->t_tfo_pending);
@@ -3202,7 +3201,7 @@ dodata: /* XXX */
tcp_trace(TA_INPUT, ostate, tp, (void *)tcp_saveipgen,
&tcp_savetcp, 0);
#endif
- TCP_PROBE3(debug__input, tp, th, mtod(m, const char *));
+ TCP_PROBE3(debug__input, tp, th, m);
/*
* Return any desired output.
@@ -3250,7 +3249,7 @@ dropafterack:
tcp_trace(TA_DROP, ostate, tp, (void *)tcp_saveipgen,
&tcp_savetcp, 0);
#endif
- TCP_PROBE3(debug__input, tp, th, mtod(m, const char *));
+ TCP_PROBE3(debug__input, tp, th, m);
if (ti_locked == TI_RLOCKED)
INP_INFO_RUNLOCK(&V_tcbinfo);
ti_locked = TI_UNLOCKED;
@@ -3291,7 +3290,7 @@ drop:
tcp_trace(TA_DROP, ostate, tp, (void *)tcp_saveipgen,
&tcp_savetcp, 0);
#endif
- TCP_PROBE3(debug__input, tp, th, mtod(m, const char *));
+ TCP_PROBE3(debug__input, tp, th, m);
if (tp != NULL)
INP_WUNLOCK(tp->t_inpcb);
m_freem(m);
diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c
index 6b187dd810d6..759a5c5c00a6 100644
--- a/sys/netinet/tcp_output.c
+++ b/sys/netinet/tcp_output.c
@@ -1339,7 +1339,7 @@ send:
ipov->ih_len = save;
}
#endif /* TCPDEBUG */
- TCP_PROBE3(debug__output, tp, th, mtod(m, const char *));
+ TCP_PROBE3(debug__output, tp, th, m);
/*
* Fill in IP length and desired time to live and
diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c
index c5d059a5fe6c..80d3b7909aab 100644
--- a/sys/netinet/tcp_subr.c
+++ b/sys/netinet/tcp_subr.c
@@ -1156,12 +1156,11 @@ tcp_respond(struct tcpcb *tp, void *ipgen, struct tcphdr *th, struct mbuf *m,
if (tp == NULL || (inp->inp_socket->so_options & SO_DEBUG))
tcp_trace(TA_OUTPUT, 0, tp, mtod(m, void *), th, 0);
#endif
- TCP_PROBE3(debug__output, tp, th, mtod(m, const char *));
+ TCP_PROBE3(debug__output, tp, th, m);
if (flags & TH_RST)
- TCP_PROBE5(accept__refused, NULL, NULL, mtod(m, const char *),
- tp, nth);
+ TCP_PROBE5(accept__refused, NULL, NULL, m, tp, nth);
- TCP_PROBE5(send, NULL, tp, mtod(m, const char *), tp, nth);
+ TCP_PROBE5(send, NULL, tp, m, tp, nth);
#ifdef INET6
if (isipv6)
(void) ip6_output(m, NULL, NULL, 0, NULL, NULL, inp);