net: sctp: Convert log timestamps to be y2038 safe
authorDeepa Dinamani <deepa.kernel@gmail.com>
Sat, 27 Feb 2016 08:32:17 +0000 (00:32 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 1 Mar 2016 22:18:44 +0000 (17:18 -0500)
SCTP probe log timestamps use struct timespec which is
not y2038 safe.
Use struct timespec64 which is 2038 safe instead.

Use monotonic time instead of real time as only time
differences are logged.

Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Cc: Vlad Yasevich <vyasevich@gmail.com>
Cc: Neil Horman <nhorman@tuxdriver.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: linux-sctp@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sctp/probe.c

index 5e68b94ee64012571bc4d5f277a9cc594467cc3b..6cc2152e074047024436e55292b39342a2eaa51f 100644 (file)
@@ -65,7 +65,7 @@ static struct {
        struct kfifo      fifo;
        spinlock_t        lock;
        wait_queue_head_t wait;
-       struct timespec   tstart;
+       struct timespec64 tstart;
 } sctpw;
 
 static __printf(1, 2) void printl(const char *fmt, ...)
@@ -85,7 +85,7 @@ static __printf(1, 2) void printl(const char *fmt, ...)
 static int sctpprobe_open(struct inode *inode, struct file *file)
 {
        kfifo_reset(&sctpw.fifo);
-       getnstimeofday(&sctpw.tstart);
+       ktime_get_ts64(&sctpw.tstart);
 
        return 0;
 }
@@ -138,7 +138,7 @@ static sctp_disposition_t jsctp_sf_eat_sack(struct net *net,
        struct sk_buff *skb = chunk->skb;
        struct sctp_transport *sp;
        static __u32 lcwnd = 0;
-       struct timespec now;
+       struct timespec64 now;
 
        sp = asoc->peer.primary_path;
 
@@ -149,8 +149,8 @@ static sctp_disposition_t jsctp_sf_eat_sack(struct net *net,
            (full || sp->cwnd != lcwnd)) {
                lcwnd = sp->cwnd;
 
-               getnstimeofday(&now);
-               now = timespec_sub(now, sctpw.tstart);
+               ktime_get_ts64(&now);
+               now = timespec64_sub(now, sctpw.tstart);
 
                printl("%lu.%06lu ", (unsigned long) now.tv_sec,
                       (unsigned long) now.tv_nsec / NSEC_PER_USEC);