]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
coredump: Use 64bit time for unix time of coredump
authorArnd Bergmann <arnd@arndb.de>
Wed, 25 Nov 2015 15:22:25 +0000 (16:22 +0100)
committerSasha Levin <sasha.levin@oracle.com>
Mon, 18 Apr 2016 12:51:07 +0000 (08:51 -0400)
[ Upstream commit 03927c8acb63100046260711c06ba28b6b5936fb ]

struct timeval on 32-bit systems will have its tv_sec
value overflow in year 2038 and beyond.
Use a 64 bit value to print time of the coredump in seconds.
ktime_get_real_seconds is chosen here for efficiency reasons.

Suggested by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Tina Ruchandani <ruchandani.tina@gmail.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
fs/coredump.c

index 8dd099dc5f9b26e98169319185cac1628bb75896..7227ad89ecee9d5ac7dcd47b65fdae68d5a67cbb 100644 (file)
@@ -32,6 +32,7 @@
 #include <linux/pipe_fs_i.h>
 #include <linux/oom.h>
 #include <linux/compat.h>
+#include <linux/timekeeping.h>
 
 #include <asm/uaccess.h>
 #include <asm/mmu_context.h>
@@ -225,9 +226,10 @@ static int format_corename(struct core_name *cn, struct coredump_params *cprm)
                                break;
                        /* UNIX time of coredump */
                        case 't': {
-                               struct timeval tv;
-                               do_gettimeofday(&tv);
-                               err = cn_printf(cn, "%lu", tv.tv_sec);
+                               time64_t time;
+
+                               time = ktime_get_real_seconds();
+                               err = cn_printf(cn, "%lld", time);
                                break;
                        }
                        /* hostname */