Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6497c7e6 authored by Deepa Dinamani's avatar Deepa Dinamani Committed by David S. Miller
Browse files

net: sctp: Convert log timestamps to be y2038 safe



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: default avatarDeepa Dinamani <deepa.kernel@gmail.com>
Reviewed-by: default avatarArnd Bergmann <arnd@arndb.de>
Acked-by: default avatarNeil 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: default avatarDavid S. Miller <davem@davemloft.net>
parent b1b270d8
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -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);