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
This commit is contained in:
parent
593b0c8420
commit
2b9c998413
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=311225
@ -1408,7 +1408,7 @@ tcp_input(struct mbuf **mp, int *offp, int proto)
|
||||
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 @@ tcp_input(struct mbuf **mp, int *offp, int proto)
|
||||
}
|
||||
#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 @@ tcp_input(struct mbuf **mp, int *offp, int proto)
|
||||
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 @@ tcp_input(struct mbuf **mp, int *offp, int proto)
|
||||
|
||||
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 @@ 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);
|
||||
|
||||
/*
|
||||
* Return any desired output.
|
||||
@ -3250,7 +3249,7 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
||||
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 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, struct socket *so,
|
||||
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);
|
||||
|
@ -1339,7 +1339,7 @@ tcp_output(struct tcpcb *tp)
|
||||
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
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user