aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJin Qian <jinqian@google.com>2015-07-13 18:16:55 -0700
committerMoyster <oysterized@gmail.com>2016-09-10 16:03:50 +0200
commit653303a8ca2590f26f97b58a71eb6ab481c8cbe4 (patch)
tree025255930a67e033a5552cdb8933d5495d72e0ba /drivers
parent988b7d47d882df3f6ddcebb813eb7874e0486dd6 (diff)
uid_cputime: fix cputime overflow
Converting cputime_t to usec caused overflow when the value is greater than 1 hour. Use msec and convert to unsigned long long to support bigger range. Bug: 22461683 Change-Id: I853fe3e8e7dbf0d3e2cc5c6f9688a5a6e1f1fb3e Signed-off-by: Jin Qian <jinqian@google.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/misc/uid_cputime.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/misc/uid_cputime.c b/drivers/misc/uid_cputime.c
index 012bd3505..75843985c 100644
--- a/drivers/misc/uid_cputime.c
+++ b/drivers/misc/uid_cputime.c
@@ -119,10 +119,12 @@ static int uid_stat_show(struct seq_file *m, void *v)
uid_entry->active_stime;
unsigned long long total_power = uid_entry->power +
uid_entry->active_power;
- seq_printf(m, "%d: %u %u %llu\n", uid_entry->uid,
- cputime_to_usecs(total_utime),
- cputime_to_usecs(total_stime),
- total_power);
+ seq_printf(m, "%d: %llu %llu %llu\n", uid_entry->uid,
+ (unsigned long long)jiffies_to_msecs(
+ cputime_to_jiffies(total_utime)) * USEC_PER_MSEC,
+ (unsigned long long)jiffies_to_msecs(
+ cputime_to_jiffies(total_stime)) * USEC_PER_MSEC,
+ total_power);
}
mutex_unlock(&uid_lock);