[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1371105776.3252.98.camel@edumazet-glaptop>
Date: Wed, 12 Jun 2013 23:42:56 -0700
From: Eric Dumazet <eric.dumazet@...il.com>
To: Cong Wang <amwang@...hat.com>
Cc: netdev@...r.kernel.org, Rick Jones <rick.jones2@...com>,
Stephen Hemminger <stephen@...workplumber.org>,
"David S. Miller" <davem@...emloft.net>,
Thomas Graf <tgraf@...g.ch>,
David Laight <David.Laight@...LAB.COM>
Subject: Re: [Patch net-next v2] tcp: introduce a per-route knob for quick
ack
On Thu, 2013-06-13 at 14:24 +0800, Cong Wang wrote:
> diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
> index 907311c..51ed9b7 100644
> --- a/net/ipv4/tcp_input.c
> +++ b/net/ipv4/tcp_input.c
> @@ -3726,6 +3726,7 @@ void tcp_reset(struct sock *sk)
> static void tcp_fin(struct sock *sk)
> {
> struct tcp_sock *tp = tcp_sk(sk);
> + const struct dst_entry *dst;
>
> inet_csk_schedule_ack(sk);
>
> @@ -3737,7 +3738,9 @@ static void tcp_fin(struct sock *sk)
> case TCP_ESTABLISHED:
> /* Move to CLOSE_WAIT */
> tcp_set_state(sk, TCP_CLOSE_WAIT);
> - inet_csk(sk)->icsk_ack.pingpong = 1;
> + dst = __sk_dst_get(sk);
What if dst is NULL ?
> + if (!dst_metric(dst, RTAX_QUICKACK))
> + inet_csk(sk)->icsk_ack.pingpong = 1;
> break;
>
> case TCP_CLOSE_WAIT:
> diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
> index ec335fa..f840b92 100644
> --- a/net/ipv4/tcp_output.c
> +++ b/net/ipv4/tcp_output.c
> @@ -160,6 +160,7 @@ static void tcp_event_data_sent(struct tcp_sock *tp,
> {
> struct inet_connection_sock *icsk = inet_csk(sk);
> const u32 now = tcp_time_stamp;
> + const struct dst_entry *dst = __sk_dst_get(sk);
>
Same here : Are you sure dst cannot be NULL ?
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists