staging: android: Replace timeval with timespec64
authorTapasweni Pathak <tapaswenipathak@gmail.com>
Sun, 26 Oct 2014 13:50:16 +0000 (19:20 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 28 Oct 2014 08:15:03 +0000 (16:15 +0800)
'timeval' is used to print timestamps in seconds and millisecond.

32-bit systems using 'struct timeval' will break in the year 2038,
So we have to replace that code with more appropriate types.

This patch changes the android driver to use timespec64.
Since this is a staging driver and the output is only used for a
debugfs file, it is fine to slightly change the output and
use nanoseconds instead. ktime_to_timespec64, is used which will return
seconds and nanoseconds.

Signed-off-by: Tapasweni Pathak <tapaswenipathak@gmail.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/android/sync_debug.c

index 257fc91bf02bc631bb33d528e6690dd1e060f675..1532a86404bee209081476e25443a8eb7833955d 100644 (file)
@@ -25,6 +25,7 @@
 #include <linux/slab.h>
 #include <linux/uaccess.h>
 #include <linux/anon_inodes.h>
+#include <linux/time64.h>
 #include "sync.h"
 
 #ifdef CONFIG_DEBUG_FS
@@ -95,9 +96,9 @@ static void sync_print_pt(struct seq_file *s, struct sync_pt *pt, bool fence)
                   sync_status_str(status));
 
        if (status <= 0) {
-               struct timeval tv = ktime_to_timeval(pt->base.timestamp);
+               struct timespec64 ts64 = ktime_to_timespec64(pt->base.timestamp);
 
-               seq_printf(s, "@%ld.%06ld", tv.tv_sec, tv.tv_usec);
+               seq_printf(s, "@%lld.%09ld", (s64)ts64.tv_sec, ts64.tv_nsec);
        }
 
        if (parent->ops->timeline_value_str &&