From 3af617bab6708d4b0d7b28ad5333b2aa791bc21d Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Mon, 9 Mar 2009 13:31:59 +0100 Subject: [PATCH] --- yaml --- r: 132120 b: refs/heads/master c: 6d5b5acca9e566515ef3f1ed617e7295c4f94345 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/kernel/tsacct.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index dc19456dc78e..b7c31c3f7b6e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7a203f3b089be4410fe065dd9927027eade94557 +refs/heads/master: 6d5b5acca9e566515ef3f1ed617e7295c4f94345 diff --git a/trunk/kernel/tsacct.c b/trunk/kernel/tsacct.c index 43f891b05a4b..00d59d048edf 100644 --- a/trunk/kernel/tsacct.c +++ b/trunk/kernel/tsacct.c @@ -122,8 +122,10 @@ void acct_update_integrals(struct task_struct *tsk) if (likely(tsk->mm)) { cputime_t time, dtime; struct timeval value; + unsigned long flags; u64 delta; + local_irq_save(flags); time = tsk->stime + tsk->utime; dtime = cputime_sub(time, tsk->acct_timexpd); jiffies_to_timeval(cputime_to_jiffies(dtime), &value); @@ -131,10 +133,12 @@ void acct_update_integrals(struct task_struct *tsk) delta = delta * USEC_PER_SEC + value.tv_usec; if (delta == 0) - return; + goto out; tsk->acct_timexpd = time; tsk->acct_rss_mem1 += delta * get_mm_rss(tsk->mm); tsk->acct_vm_mem1 += delta * tsk->mm->total_vm; + out: + local_irq_restore(flags); } }