summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJin Qian <jinqian@google.com>2015-07-13 18:16:55 -0700
committerJohn Stultz <john.stultz@linaro.org>2016-02-16 13:53:53 -0800
commitdbd9fc75c47a29446ac61c87672d6e11555a5a58 (patch)
tree965688d0c56314339b76582399a276bd374f5a2b /drivers
parent2244d3438eb6d1263697849050eea08a7f3ee027 (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 012bd3505ed5..75843985c0e8 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);