Skip to contentSkip to conversation

coredump: Use 64bit time for unix time of coredump

PATCH In review Tina Ruchandani 2 participants 2 messages Jan 28, 2015 VFS

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 coredump: Use 64bit time for unix time of coredump

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 <[email protected]>

---
Changes in v2:
- use ktime_get_real_seconds instead of getnstimeofday64
- fix printf format string:should work on 32-bit systems too.

---
 fs/coredump.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
fs/coredump.c +5 -3
index b5c86ff..d118c1d 100644
@@ -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 */

--
2.2.0.rc0.207.ga3a616c

Reviewed-by on v2 1/1
#1 lore raw
Quoted 7 lines · On Wednesday 28 January 2015 10:46:06 Tina Ruchandani wrote:

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 <[email protected]>