From: Xunlei Pang Date: Wed, 10 Dec 2014 23:54:26 +0000 (-0800) Subject: rtc: refine rtc_timer_do_work() to consider other set alarm failures X-Git-Tag: omap-for-v3.19/fixes-rc1~142^2~22 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6528b889955d36caa06712789746cfbd0ecf3898;p=pandora-kernel.git rtc: refine rtc_timer_do_work() to consider other set alarm failures rtc_timer_do_work() only judges -ETIME failure of__rtc_set_alarm(), but doesn't handle other failures like -EIO, -EBUSY, etc. If there is a failure other than -ETIME, the next rtc_timer will stay in the timerqueue. Then later rtc_timers will be enqueued directly because they have a later expires time, so the alarm irq will never be programmed. When such failures happen, this patch will retry __rtc_set_alarm(), if still can't program the alarm time, it will remove current rtc_timer from timerqueue and fetch next one, thus preventing it from affecting other rtc timers. Signed-off-by: Xunlei Pang Cc: Alessandro Zummo Cc: John Stultz Cc: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- Reading git-diff-tree failed