On 27/02/2018 at 10:50:03 +0800, Jeffy Chen wrote: > Since accessing a Chrome OS EC based rtc is a slow operation, there is a > race window where if the alarm is set for the next second and the second > ticks over right before calculating the alarm offset. > > In this case the current driver is setting a 0-second alarm, which would > be considered as disabling alarms by the EC(EC_RTC_ALARM_CLEAR). > > This breaks, e.g., hwclock which relies on RTC_UIE_ON -> > rtc_update_irq_enable(), which sets a 1-second alarm and expects it to > fire an interrupt. > > So return -ETIME when the alarm is in the past, follow __rtc_set_alarm(). > > Signed-off-by: Jeffy Chen <jeffy.chen@xxxxxxxxxxxxxx> > --- > > Changes in v3: > Fix alarm time comparing. > > Changes in v2: > Rewrite commit message as Brian suggested. > Check alarm time only when that alarm is enabled. > > drivers/rtc/rtc-cros-ec.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) Applied, thanks. -- Alexandre Belloni, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering https://bootlin.com