]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - fs/proc/uptime.c
Merge branch 'spi/s3c64xx' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
[karo-tx-linux.git] / fs / proc / uptime.c
index 0fb22e464e725ed0fe154927c87ec67044c89adc..9610ac772d7e8e79a197725fbed6f77ef5b1dc96 100644 (file)
@@ -11,15 +11,20 @@ static int uptime_proc_show(struct seq_file *m, void *v)
 {
        struct timespec uptime;
        struct timespec idle;
+       u64 idletime;
+       u64 nsec;
+       u32 rem;
        int i;
-       u64 idletime = 0;
 
+       idletime = 0;
        for_each_possible_cpu(i)
-               idletime += kcpustat_cpu(i).cpustat[CPUTIME_IDLE];
+               idletime += (__force u64) kcpustat_cpu(i).cpustat[CPUTIME_IDLE];
 
        do_posix_clock_monotonic_gettime(&uptime);
        monotonic_to_bootbased(&uptime);
-       cputime_to_timespec(idletime, &idle);
+       nsec = cputime64_to_jiffies64(idletime) * TICK_NSEC;
+       idle.tv_sec = div_u64_rem(nsec, NSEC_PER_SEC, &rem);
+       idle.tv_nsec = rem;
        seq_printf(m, "%lu.%02lu %lu.%02lu\n",
                        (unsigned long) uptime.tv_sec,
                        (uptime.tv_nsec / (NSEC_PER_SEC / 100)),