|
@@ -50,8 +50,7 @@ void rds_inc_init(struct rds_incoming *inc, struct rds_connection *conn,
|
|
|
inc->i_conn = conn;
|
|
|
inc->i_saddr = *saddr;
|
|
|
inc->i_rdma_cookie = 0;
|
|
|
- inc->i_rx_tstamp.tv_sec = 0;
|
|
|
- inc->i_rx_tstamp.tv_usec = 0;
|
|
|
+ inc->i_rx_tstamp = ktime_set(0, 0);
|
|
|
|
|
|
for (i = 0; i < RDS_RX_MAX_TRACES; i++)
|
|
|
inc->i_rx_lat_trace[i] = 0;
|
|
@@ -67,8 +66,7 @@ void rds_inc_path_init(struct rds_incoming *inc, struct rds_conn_path *cp,
|
|
|
inc->i_conn_path = cp;
|
|
|
inc->i_saddr = *saddr;
|
|
|
inc->i_rdma_cookie = 0;
|
|
|
- inc->i_rx_tstamp.tv_sec = 0;
|
|
|
- inc->i_rx_tstamp.tv_usec = 0;
|
|
|
+ inc->i_rx_tstamp = ktime_set(0, 0);
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(rds_inc_path_init);
|
|
|
|
|
@@ -385,7 +383,7 @@ void rds_recv_incoming(struct rds_connection *conn, struct in6_addr *saddr,
|
|
|
be32_to_cpu(inc->i_hdr.h_len),
|
|
|
inc->i_hdr.h_dport);
|
|
|
if (sock_flag(sk, SOCK_RCVTSTAMP))
|
|
|
- do_gettimeofday(&inc->i_rx_tstamp);
|
|
|
+ inc->i_rx_tstamp = ktime_get_real();
|
|
|
rds_inc_addref(inc);
|
|
|
inc->i_rx_lat_trace[RDS_MSG_RX_END] = local_clock();
|
|
|
list_add_tail(&inc->i_item, &rs->rs_recv_queue);
|
|
@@ -552,11 +550,11 @@ static int rds_cmsg_recv(struct rds_incoming *inc, struct msghdr *msg,
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
- if ((inc->i_rx_tstamp.tv_sec != 0) &&
|
|
|
+ if ((inc->i_rx_tstamp != 0) &&
|
|
|
sock_flag(rds_rs_to_sk(rs), SOCK_RCVTSTAMP)) {
|
|
|
+ struct timeval tv = ktime_to_timeval(inc->i_rx_tstamp);
|
|
|
ret = put_cmsg(msg, SOL_SOCKET, SCM_TIMESTAMP,
|
|
|
- sizeof(struct timeval),
|
|
|
- &inc->i_rx_tstamp);
|
|
|
+ sizeof(tv), &tv);
|
|
|
if (ret)
|
|
|
goto out;
|
|
|
}
|