Merge tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
[sfrench/cifs-2.6.git] / net / ipv4 / tcp_cdg.c
index 167b6a3e1b9868c88e5553b114556ae312dfb99f..03725b2942866e2e9f91d9f9e01ab12ae9ff36dd 100644 (file)
@@ -155,11 +155,11 @@ static void tcp_cdg_hystart_update(struct sock *sk)
 
                        ca->last_ack = now_us;
                        if (after(now_us, ca->round_start + base_owd)) {
-                               NET_INC_STATS_BH(sock_net(sk),
-                                                LINUX_MIB_TCPHYSTARTTRAINDETECT);
-                               NET_ADD_STATS_BH(sock_net(sk),
-                                                LINUX_MIB_TCPHYSTARTTRAINCWND,
-                                                tp->snd_cwnd);
+                               NET_INC_STATS(sock_net(sk),
+                                             LINUX_MIB_TCPHYSTARTTRAINDETECT);
+                               NET_ADD_STATS(sock_net(sk),
+                                             LINUX_MIB_TCPHYSTARTTRAINCWND,
+                                             tp->snd_cwnd);
                                tp->snd_ssthresh = tp->snd_cwnd;
                                return;
                        }
@@ -174,11 +174,11 @@ static void tcp_cdg_hystart_update(struct sock *sk)
                                         125U);
 
                        if (ca->rtt.min > thresh) {
-                               NET_INC_STATS_BH(sock_net(sk),
-                                                LINUX_MIB_TCPHYSTARTDELAYDETECT);
-                               NET_ADD_STATS_BH(sock_net(sk),
-                                                LINUX_MIB_TCPHYSTARTDELAYCWND,
-                                                tp->snd_cwnd);
+                               NET_INC_STATS(sock_net(sk),
+                                             LINUX_MIB_TCPHYSTARTDELAYDETECT);
+                               NET_ADD_STATS(sock_net(sk),
+                                             LINUX_MIB_TCPHYSTARTDELAYCWND,
+                                             tp->snd_cwnd);
                                tp->snd_ssthresh = tp->snd_cwnd;
                        }
                }
@@ -294,12 +294,12 @@ static void tcp_cdg_cong_avoid(struct sock *sk, u32 ack, u32 acked)
        ca->shadow_wnd = max(ca->shadow_wnd, ca->shadow_wnd + incr);
 }
 
-static void tcp_cdg_acked(struct sock *sk, u32 num_acked, s32 rtt_us)
+static void tcp_cdg_acked(struct sock *sk, const struct ack_sample *sample)
 {
        struct cdg *ca = inet_csk_ca(sk);
        struct tcp_sock *tp = tcp_sk(sk);
 
-       if (rtt_us <= 0)
+       if (sample->rtt_us <= 0)
                return;
 
        /* A heuristic for filtering delayed ACKs, adapted from:
@@ -307,20 +307,20 @@ static void tcp_cdg_acked(struct sock *sk, u32 num_acked, s32 rtt_us)
         * delay and rate based TCP mechanisms." TR 100219A. CAIA, 2010.
         */
        if (tp->sacked_out == 0) {
-               if (num_acked == 1 && ca->delack) {
+               if (sample->pkts_acked == 1 && ca->delack) {
                        /* A delayed ACK is only used for the minimum if it is
                         * provenly lower than an existing non-zero minimum.
                         */
-                       ca->rtt.min = min(ca->rtt.min, rtt_us);
+                       ca->rtt.min = min(ca->rtt.min, sample->rtt_us);
                        ca->delack--;
                        return;
-               } else if (num_acked > 1 && ca->delack < 5) {
+               } else if (sample->pkts_acked > 1 && ca->delack < 5) {
                        ca->delack++;
                }
        }
 
-       ca->rtt.min = min_not_zero(ca->rtt.min, rtt_us);
-       ca->rtt.max = max(ca->rtt.max, rtt_us);
+       ca->rtt.min = min_not_zero(ca->rtt.min, sample->rtt_us);
+       ca->rtt.max = max(ca->rtt.max, sample->rtt_us);
 }
 
 static u32 tcp_cdg_ssthresh(struct sock *sk)