4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Yousuk Seung <ysse...@google.com>

[ Upstream commit f4c9f85f3b2cb7669830cd04d0be61192a4d2436 ]

Refactor tcp_ecn_check_ce and __tcp_ecn_check_ce to accept struct sock*
instead of tcp_sock* to clean up type casts. This is a pure refactor
patch.

Signed-off-by: Yousuk Seung <ysse...@google.com>
Signed-off-by: Neal Cardwell <ncardw...@google.com>
Signed-off-by: Yuchung Cheng <ych...@google.com>
Signed-off-by: Eric Dumazet <eduma...@google.com>
Acked-by: Soheil Hassas Yeganeh <soh...@google.com>
Signed-off-by: David S. Miller <da...@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
---
 net/ipv4/tcp_input.c |   26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -228,8 +228,10 @@ static void tcp_ecn_withdraw_cwr(struct
        tp->ecn_flags &= ~TCP_ECN_DEMAND_CWR;
 }
 
-static void __tcp_ecn_check_ce(struct tcp_sock *tp, const struct sk_buff *skb)
+static void __tcp_ecn_check_ce(struct sock *sk, const struct sk_buff *skb)
 {
+       struct tcp_sock *tp = tcp_sk(sk);
+
        switch (TCP_SKB_CB(skb)->ip_dsfield & INET_ECN_MASK) {
        case INET_ECN_NOT_ECT:
                /* Funny extension: if ECT is not set on a segment,
@@ -237,31 +239,31 @@ static void __tcp_ecn_check_ce(struct tc
                 * it is probably a retransmit.
                 */
                if (tp->ecn_flags & TCP_ECN_SEEN)
-                       tcp_enter_quickack_mode((struct sock *)tp, 1);
+                       tcp_enter_quickack_mode(sk, 1);
                break;
        case INET_ECN_CE:
-               if (tcp_ca_needs_ecn((struct sock *)tp))
-                       tcp_ca_event((struct sock *)tp, CA_EVENT_ECN_IS_CE);
+               if (tcp_ca_needs_ecn(sk))
+                       tcp_ca_event(sk, CA_EVENT_ECN_IS_CE);
 
                if (!(tp->ecn_flags & TCP_ECN_DEMAND_CWR)) {
                        /* Better not delay acks, sender can have a very low 
cwnd */
-                       tcp_enter_quickack_mode((struct sock *)tp, 1);
+                       tcp_enter_quickack_mode(sk, 1);
                        tp->ecn_flags |= TCP_ECN_DEMAND_CWR;
                }
                tp->ecn_flags |= TCP_ECN_SEEN;
                break;
        default:
-               if (tcp_ca_needs_ecn((struct sock *)tp))
-                       tcp_ca_event((struct sock *)tp, CA_EVENT_ECN_NO_CE);
+               if (tcp_ca_needs_ecn(sk))
+                       tcp_ca_event(sk, CA_EVENT_ECN_NO_CE);
                tp->ecn_flags |= TCP_ECN_SEEN;
                break;
        }
 }
 
-static void tcp_ecn_check_ce(struct tcp_sock *tp, const struct sk_buff *skb)
+static void tcp_ecn_check_ce(struct sock *sk, const struct sk_buff *skb)
 {
-       if (tp->ecn_flags & TCP_ECN_OK)
-               __tcp_ecn_check_ce(tp, skb);
+       if (tcp_sk(sk)->ecn_flags & TCP_ECN_OK)
+               __tcp_ecn_check_ce(sk, skb);
 }
 
 static void tcp_ecn_rcv_synack(struct tcp_sock *tp, const struct tcphdr *th)
@@ -675,7 +677,7 @@ static void tcp_event_data_recv(struct s
        }
        icsk->icsk_ack.lrcvtime = now;
 
-       tcp_ecn_check_ce(tp, skb);
+       tcp_ecn_check_ce(sk, skb);
 
        if (skb->len >= 128)
                tcp_grow_window(sk, skb);
@@ -4366,7 +4368,7 @@ static void tcp_data_queue_ofo(struct so
        struct sk_buff *skb1;
        u32 seq, end_seq;
 
-       tcp_ecn_check_ce(tp, skb);
+       tcp_ecn_check_ce(sk, skb);
 
        if (unlikely(tcp_try_rmem_schedule(sk, skb, skb->truesize))) {
                NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPOFODROP);


Reply via email to