diff options
author | Jonghwa Lee <jonghwa3.lee@samsung.com> | 2014-10-10 17:54:37 +0900 |
---|---|---|
committer | Chanho Park <chanho61.park@samsung.com> | 2014-10-13 19:16:08 -0700 |
commit | bfc7923da1112e6dd09f31181c6c135123d01405 (patch) | |
tree | b9b95ac4e5d400f01bae6de2c759de5c6c8a3fc8 | |
parent | d2f21461de09012424d362a13eb7bffdc671618f (diff) | |
download | linux-3.10-bfc7923da1112e6dd09f31181c6c135123d01405.tar.gz linux-3.10-bfc7923da1112e6dd09f31181c6c135123d01405.tar.bz2 linux-3.10-bfc7923da1112e6dd09f31181c6c135123d01405.zip |
power: charger-manager: Prevent ktimer's nsecs value exceeds its size.
When charger-manager sets alarmtimer, it has used nanoseconds converted
from polling period which is in milliseconds. However ktimer's nanoseconds
is limited to represent as size of unsinged long type, and the previous
use often exceeds its limitation. It fixes to divide target timer period
into seconds part and remains in nanoseconds to prevent abnormal timer period
is set.
Change-Id: I7a5cad5569505c901a4822bbd7a4ad0fa149570b
Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
-rw-r--r-- | drivers/power/charger-manager.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/power/charger-manager.c b/drivers/power/charger-manager.c index 6e8c5fe7b10..0a258ee22b0 100644 --- a/drivers/power/charger-manager.c +++ b/drivers/power/charger-manager.c @@ -849,7 +849,8 @@ static bool cm_setup_timer(void) pr_info("Charger Manager wakeup timer: %u ms\n", wakeup_ms); now = ktime_get_boottime(); - add = ktime_set(0, wakeup_ms * NSEC_PER_MSEC); + add = ktime_set(wakeup_ms / MSEC_PER_SEC, + (wakeup_ms % MSEC_PER_SEC) * NSEC_PER_MSEC); alarm_start(cm_timer, ktime_add(now, add)); cm_suspend_duration_ms = wakeup_ms; |