unsigned int len)
 {
        struct ccid3_hc_tx_sock *hctx = ccid3_hc_tx_sk(sk);
-       struct timeval now;
        struct dccp_tx_hist_entry *packet;
 
        BUG_ON(hctx == NULL);
        }
        dccp_tx_hist_add_entry(&hctx->ccid3hctx_hist, packet);
 
-       dccp_timestamp(sk, &now);
-       packet->dccphtx_tstamp = now;
+       packet->dccphtx_tstamp = ktime_to_timeval(ktime_get_real());
        packet->dccphtx_seqno  = dccp_sk(sk)->dccps_gss;
        packet->dccphtx_rtt    = hctx->ccid3hctx_rtt;
        packet->dccphtx_sent   = 1;
        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 tnow;
-       ktime_t now;
+       ktime_t now, t_hist;
        suseconds_t delta;
 
        ccid3_pr_debug("%s(%p) - entry \n", dccp_role(sk), sk);
        hcrx->ccid3hcrx_bytes_recv           = 0;
 
        /* Elapsed time information [RFC 4340, 13.2] in units of 10 * usecs */
-       tnow = ktime_to_timeval(now);
-       delta = timeval_delta(&tnow, &packet->dccphrx_tstamp);
+       t_hist = timeval_to_ktime(packet->dccphrx_tstamp);
+       delta = ktime_us_delta(now, t_hist);
        DCCP_BUG_ON(delta < 0);
        hcrx->ccid3hcrx_elapsed_time = delta / 10;