diff options
| author | Jim Wylder <jwylder@motorola.com> | 2014-07-14 12:51:58 -0500 | 
|---|---|---|
| committer | James Wylder <jwylder@motorola.com> | 2014-07-15 16:42:31 +0000 | 
| commit | b36a0044e097a82d6c7e61b384a7d80a9b8192d7 (patch) | |
| tree | 6c13cfe01f2a8395753f2f727e260410dbe6ed2d /kernel | |
| parent | b5cb56ef23040ddd5f9725f54bcab9e174a8bb1e (diff) | |
| download | olio-linux-3.10-b36a0044e097a82d6c7e61b384a7d80a9b8192d7.tar.xz olio-linux-3.10-b36a0044e097a82d6c7e61b384a7d80a9b8192d7.zip | |
IKXCLOCK-2803 alarmtimer: check rtc_read_time return value
If we are not able to read the current time, there is no
value in attempting to schedule an alarm based on that
time.  In some cases, the stack value for time can
look close enough to a future time to make it through
validity checking, but not be a valid timer event.
Change-Id: I2f29087deefb12222043d80f506cb41d89e7f9e1
Signed-off-by: Jim Wylder <jwylder@motorola.com>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/time/alarmtimer.c | 5 | 
1 files changed, 4 insertions, 1 deletions
| diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c index 3e5cba27447..07f7c6f9330 100644 --- a/kernel/time/alarmtimer.c +++ b/kernel/time/alarmtimer.c @@ -260,12 +260,15 @@ static int alarmtimer_suspend(struct device *dev)  	/* Setup an rtc timer to fire that far in the future */  	rtc_timer_cancel(rtc, &rtctimer); -	rtc_read_time(rtc, &tm); +	ret = rtc_read_time(rtc, &tm); +	if (ret < 0) +		goto out;  	now = rtc_tm_to_ktime(tm);  	now = ktime_add(now, min);  	/* Set alarm, if in the past reject suspend briefly to handle */  	ret = rtc_timer_start(rtc, &rtctimer, now, ktime_set(0, 0)); +out:  	if (ret < 0)  		__pm_wakeup_event(ws, MSEC_PER_SEC);  	return ret; |