coredump: Use 64bit time for unix time of coredump
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]>
Signed-off-by Tina Ruchandani <[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
@@ -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
Quoted 7 lines · On Wednesday 28 January 2015 10:46:06 Tina Ruchandani wrote:
struct timeval on 32-bit systems will have its
tv_secvalue overflow in year 2038 and beyond.
Use a 64 bit value to print time of the coredump in seconds.ktime_get_real_secondsis chosen here for efficiency reasons.Suggested by: Arnd Bergmann <[email protected]>
Signed-off-by Tina Ruchandani <[email protected]>
Reviewed-by Arnd Bergmann <[email protected]>