uptime.tv_sec and idle.tv_sec are time64_t and may exceed unsigned long on 32-bit kernels. Print them using a 64-bit format to avoid truncation in /proc/uptime. Signed-off-by: Jaime Saguillo Revilla --- fs/proc/uptime.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/proc/uptime.c b/fs/proc/uptime.c index b5343d209381..2b83435ad01e 100644 --- a/fs/proc/uptime.c +++ b/fs/proc/uptime.c @@ -30,10 +30,10 @@ static int uptime_proc_show(struct seq_file *m, void *v) idle.tv_sec = div_u64_rem(idle_nsec, NSEC_PER_SEC, &rem); idle.tv_nsec = rem; - seq_printf(m, "%lu.%02lu %lu.%02lu\n", - (unsigned long) uptime.tv_sec, + seq_printf(m, "%lld.%02lu %lld.%02lu\n", + (long long) uptime.tv_sec, (uptime.tv_nsec / (NSEC_PER_SEC / 100)), - (unsigned long) idle.tv_sec, + (long long) idle.tv_sec, (idle.tv_nsec / (NSEC_PER_SEC / 100))); return 0; } -- 2.43.0