[DCCP]: Convert ccid3hcrx_tstamp_last_feedback to ktime_t
authorArnaldo Carvalho de Melo <acme@ghostprotocols.net>
Mon, 20 Aug 2007 00:15:37 +0000 (17:15 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Wed, 10 Oct 2007 23:48:12 +0000 (16:48 -0700)
Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dccp/ccids/ccid3.c
net/dccp/ccids/ccid3.h

index 63051eb1779d4a5eb162a88ab7e3c2d0ba941207..1a0c5edb7b3555f9fe92d28a0c5cf8c9bfd1efeb 100644 (file)
@@ -729,20 +729,21 @@ static void ccid3_hc_rx_send_feedback(struct sock *sk)
        struct ccid3_hc_rx_sock *hcrx = ccid3_hc_rx_sk(sk);
        struct dccp_sock *dp = dccp_sk(sk);
        struct dccp_rx_hist_entry *packet;
-       struct timeval now;
+       struct timeval tnow;
+       ktime_t now;
        suseconds_t delta;
 
        ccid3_pr_debug("%s(%p) - entry \n", dccp_role(sk), sk);
 
-       dccp_timestamp(sk, &now);
+       now = ktime_get_real();
 
        switch (hcrx->ccid3hcrx_state) {
        case TFRC_RSTATE_NO_DATA:
                hcrx->ccid3hcrx_x_recv = 0;
                break;
        case TFRC_RSTATE_DATA:
-               delta = timeval_delta(&now,
-                                     &hcrx->ccid3hcrx_tstamp_last_feedback);
+               delta = ktime_us_delta(now,
+                                      hcrx->ccid3hcrx_tstamp_last_feedback);
                DCCP_BUG_ON(delta < 0);
                hcrx->ccid3hcrx_x_recv =
                        scaled_div32(hcrx->ccid3hcrx_bytes_recv, delta);
@@ -764,7 +765,8 @@ static void ccid3_hc_rx_send_feedback(struct sock *sk)
        hcrx->ccid3hcrx_bytes_recv           = 0;
 
        /* Elapsed time information [RFC 4340, 13.2] in units of 10 * usecs */
-       delta = timeval_delta(&now, &packet->dccphrx_tstamp);
+       tnow = ktime_to_timeval(now);
+       delta = timeval_delta(&tnow, &packet->dccphrx_tstamp);
        DCCP_BUG_ON(delta < 0);
        hcrx->ccid3hcrx_elapsed_time = delta / 10;
 
@@ -835,11 +837,13 @@ static int ccid3_hc_rx_detect_loss(struct sock *sk,
 
        while (dccp_delta_seqno(hcrx->ccid3hcrx_seqno_nonloss, seqno)
           > TFRC_RECV_NUM_LATE_LOSS) {
+               struct timeval tstamp =
+                       ktime_to_timeval(hcrx->ccid3hcrx_tstamp_last_feedback);
                loss = 1;
                dccp_li_update_li(sk,
                                  &hcrx->ccid3hcrx_li_hist,
                                  &hcrx->ccid3hcrx_hist,
-                                 &hcrx->ccid3hcrx_tstamp_last_feedback,
+                                 &tstamp,
                                  hcrx->ccid3hcrx_s,
                                  hcrx->ccid3hcrx_bytes_recv,
                                  hcrx->ccid3hcrx_x_recv,
@@ -989,9 +993,8 @@ static int ccid3_hc_rx_init(struct ccid *ccid, struct sock *sk)
        hcrx->ccid3hcrx_state = TFRC_RSTATE_NO_DATA;
        INIT_LIST_HEAD(&hcrx->ccid3hcrx_hist);
        INIT_LIST_HEAD(&hcrx->ccid3hcrx_li_hist);
-       hcrx->ccid3hcrx_tstamp_last_ack = ktime_get_real();
        hcrx->ccid3hcrx_tstamp_last_feedback =
-               ktime_to_timeval(hcrx->ccid3hcrx_tstamp_last_ack);
+               hcrx->ccid3hcrx_tstamp_last_ack = ktime_get_real();
        hcrx->ccid3hcrx_s   = 0;
        hcrx->ccid3hcrx_rtt = 0;
        return 0;
index a69cf887e3e3eb7760f912730ec6221bd2e06af3..7cbf2b1329d90bd3415ddf8095186613b2277751 100644 (file)
@@ -152,7 +152,7 @@ struct ccid3_hc_rx_sock {
                                        ccid3hcrx_ccval_last_counter:4;
        enum ccid3_hc_rx_states         ccid3hcrx_state:8;
        u32                             ccid3hcrx_bytes_recv;
-       struct timeval                  ccid3hcrx_tstamp_last_feedback;
+       ktime_t                         ccid3hcrx_tstamp_last_feedback;
        ktime_t                         ccid3hcrx_tstamp_last_ack;
        struct list_head                ccid3hcrx_hist;
        struct list_head                ccid3hcrx_li_hist;