From 6528b889955d36caa06712789746cfbd0ecf3898 Mon Sep 17 00:00:00 2001 From: Xunlei Pang Date: Wed, 10 Dec 2014 15:54:26 -0800 Subject: [PATCH] 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-format-patch failed