PM / devfreq: Rewrite devfreq_update_status() to fix multiple bugs
authorSaravana Kannan <skannan@codeaurora.org>
Fri, 28 Feb 2014 03:38:57 +0000 (19:38 -0800)
committerMyungJoo Ham <myungjoo.ham@samsung.com>
Fri, 21 Mar 2014 02:16:30 +0000 (11:16 +0900)
commite35d35a1c0b3a7317d77e03e686a4a205cdd4eed
tree13bfac6f86fcc9fb5e40315d7e4a115f05e88bc5
parentdcb99fd9b08cfe1afe426af4d8d3cbc429190f15
PM / devfreq: Rewrite devfreq_update_status() to fix multiple bugs

The current devfreq_update_status() has the following bugs:
- If previous frequency doesn't have a valid level, it does an out of bounds
  access into the trans_table and causes memory corruption.
- When the new frequency doesn't have a valid level, the time spent in the
  new frequency is counted towards the next valid frequency switch instead of
  being ignored.
- The time spent on the previous frequency is added to the new frequency's
  stats instead of the previous frequency's stats.

This patch fixes all of this.

Signed-off-by: Saravana Kannan <skannan@codeaurora.org>
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
drivers/devfreq/devfreq.c