linux-next: manual merge of the tip tree with the cputime tree

From: Stephen Rothwell
Date: Sun Dec 18 2011 - 23:40:21 EST


Hi all,

Today's linux-next merge of the tip tree got a conflict in
fs/proc/uptime.c between commit c3e0ef9a298e ("[S390] fix cputime
overflow in uptime_proc_show") from the cputime tree and commit
3292beb340c7 ("sched/accounting: Change cpustat fields to an array") from
the tip tree.

I fixed it up (I think - see below) and can carry the fix as necessary.

Generally, you guys seem to be working a little at cross purposes ...
--
Cheers,
Stephen Rothwell sfr@xxxxxxxxxxxxxxxx

diff --cc fs/proc/uptime.c
index ab51510,0fb22e4..0000000
--- a/fs/proc/uptime.c
+++ b/fs/proc/uptime.c
@@@ -6,30 -6,25 +6,29 @@@
#include <linux/time.h>
#include <linux/kernel_stat.h>
#include <asm/cputime.h>

static int uptime_proc_show(struct seq_file *m, void *v)
{
struct timespec uptime;
struct timespec idle;
- cputime64_t idletime;
+ u64 nsec;
+ u32 rem;
int i;
+ u64 idletime = 0;

- idletime = 0;
for_each_possible_cpu(i)
- idletime += kstat_cpu(i).cpustat.idle;
+ idletime += 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)),
(unsigned long) idle.tv_sec,
(idle.tv_nsec / (NSEC_PER_SEC / 100)));
return 0;
}

Attachment: pgp00000.pgp
Description: PGP signature