mmc: s3c6410: enable ADMA feature in 6410 sdhci controller
[safe/jmp/linux-2.6] / kernel / tsacct.c
index 43f891b..0a67e04 100644 (file)
@@ -21,6 +21,7 @@
 #include <linux/tsacct_kern.h>
 #include <linux/acct.h>
 #include <linux/jiffies.h>
+#include <linux/mm.h>
 
 /*
  * fill in basic accounting fields
@@ -122,8 +123,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 +134,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);
        }
 }