[NET]: Convert init_timer into setup_timer
[linux-2.6.git] / net / dccp / ccids / ccid2.c
index 3e4fa6b..c9c465e 100644 (file)
@@ -59,7 +59,8 @@ static void ccid2_hc_tx_check_sanity(const struct ccid2_hc_tx_sock *hctx)
                                pipe++;
 
                        /* packets are sent sequentially */
-                       BUG_ON(seqp->ccid2s_seq <= prev->ccid2s_seq);
+                       BUG_ON(dccp_delta_seqno(seqp->ccid2s_seq,
+                                               prev->ccid2s_seq ) >= 0);
                        BUG_ON(time_before(seqp->ccid2s_sent,
                                           prev->ccid2s_sent));
 
@@ -126,19 +127,7 @@ static int ccid2_hc_tx_alloc_seq(struct ccid2_hc_tx_sock *hctx)
 
 static int ccid2_hc_tx_send_packet(struct sock *sk, struct sk_buff *skb)
 {
-       struct ccid2_hc_tx_sock *hctx;
-
-       switch (DCCP_SKB_CB(skb)->dccpd_type) {
-       case 0: /* XXX data packets from userland come through like this */
-       case DCCP_PKT_DATA:
-       case DCCP_PKT_DATAACK:
-               break;
-       /* No congestion control on other packets */
-       default:
-               return 0;
-       }
-
-       hctx = ccid2_hc_tx_sk(sk);
+       struct ccid2_hc_tx_sock *hctx = ccid2_hc_tx_sk(sk);
 
        ccid2_pr_debug("pipe=%d cwnd=%d\n", hctx->ccid2hctx_pipe,
                       hctx->ccid2hctx_cwnd);
@@ -179,16 +168,11 @@ static void ccid2_change_l_ack_ratio(struct sock *sk, int val)
        dp->dccps_l_ack_ratio = val;
 }
 
-static void ccid2_change_cwnd(struct ccid2_hc_tx_sock *hctx, int val)
+static void ccid2_change_cwnd(struct ccid2_hc_tx_sock *hctx, u32 val)
 {
-       if (val == 0)
-               val = 1;
-
        /* XXX do we need to change ack ratio? */
-       ccid2_pr_debug("change cwnd to %d\n", val);
-
-       BUG_ON(val < 1);
-       hctx->ccid2hctx_cwnd = val;
+       hctx->ccid2hctx_cwnd = val? : 1;
+       ccid2_pr_debug("changed cwnd to %u\n", hctx->ccid2hctx_cwnd);
 }
 
 static void ccid2_change_srtt(struct ccid2_hc_tx_sock *hctx, long val)
@@ -579,8 +563,8 @@ static void ccid2_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb)
                hctx->ccid2hctx_rpseq = seqno;
        } else {
                /* check if packet is consecutive */
-               if ((hctx->ccid2hctx_rpseq + 1) == seqno)
-                       hctx->ccid2hctx_rpseq++;
+               if (dccp_delta_seqno(hctx->ccid2hctx_rpseq, seqno) == 1)
+                       hctx->ccid2hctx_rpseq = seqno;
                /* it's a later packet */
                else if (after48(seqno, hctx->ccid2hctx_rpseq)) {
                        hctx->ccid2hctx_rpdupack++;
@@ -766,24 +750,18 @@ static int ccid2_hc_tx_init(struct ccid *ccid, struct sock *sk)
         */
        hctx->ccid2hctx_ssthresh  = ~0;
        hctx->ccid2hctx_numdupack = 3;
-       hctx->ccid2hctx_seqbufc   = 0;
 
        /* XXX init ~ to window size... */
        if (ccid2_hc_tx_alloc_seq(hctx))
                return -ENOMEM;
 
-       hctx->ccid2hctx_sent     = 0;
        hctx->ccid2hctx_rto      = 3 * HZ;
        ccid2_change_srtt(hctx, -1);
        hctx->ccid2hctx_rttvar   = -1;
-       hctx->ccid2hctx_lastrtt  = 0;
        hctx->ccid2hctx_rpdupack = -1;
        hctx->ccid2hctx_last_cong = jiffies;
-       hctx->ccid2hctx_high_ack = 0;
-
-       hctx->ccid2hctx_rtotimer.function = &ccid2_hc_tx_rto_expire;
-       hctx->ccid2hctx_rtotimer.data     = (unsigned long)sk;
-       init_timer(&hctx->ccid2hctx_rtotimer);
+       setup_timer(&hctx->ccid2hctx_rtotimer, ccid2_hc_tx_rto_expire,
+                       (unsigned long)sk);
 
        ccid2_hc_tx_check_sanity(hctx);
        return 0;