From: Natale Patriciello <natale.patricie...@gmail.com> Date: Fri, 28 Jul 2017 21:59:16 +0200
> @@ -369,6 +369,9 @@ struct tcp_sock { > */ > struct request_sock *fastopen_rsk; > u32 *saved_syn; > + > +/* TCP send timer */ > + struct timer_list send_timer; > }; > > enum tsq_enum { If this is congestion control specific it should go into the congestion control algorithm metadata. If not, then it's OK to be here I guess :) > diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c > index 4858e190f6ac..357b9cd5019e 100644 > --- a/net/ipv4/tcp_output.c > +++ b/net/ipv4/tcp_output.c > @@ -2187,6 +2187,7 @@ static bool tcp_write_xmit(struct sock *sk, unsigned > int mss_now, int nonagle, > int push_one, gfp_t gfp) > { > struct tcp_sock *tp = tcp_sk(sk); > + const struct tcp_congestion_ops *ca_ops; > struct sk_buff *skb; > unsigned int tso_segs, sent_pkts; > int cwnd_quota; Please maintain the reverse christmas tree (longest to shortest) line ordering of all local variable declarations. > + if (timer_pending(&tp->send_timer) == 0) { > + /* Timer is not running, push data out */ > + int ret; > + const struct tcp_congestion_ops *ca_ops; Likewise.