Skip to content
Commit de86c841 authored by Alexandre Belloni's avatar Alexandre Belloni Committed by Paul Gortmaker
Browse files

rtc: disable uie before setting time and enable after

commit 7e7c005b

 upstream.

When setting the time in the future with the uie timer enabled,
rtc_timer_do_work will loop for a while because the expiration of the uie
timer was way before the current RTC time and a new timer will be enqueued
until the current rtc time is reached.

If the uie timer is enabled, disable it before setting the time and enable
it after expiring current timers (which may actually be an alarm).

This is the safest thing to do to ensure the uie timer is still
synchronized with the RTC, especially in the UIE emulation case.

Reported-by: default avatar <syzbot+08116743f8ad6f9a6de7@syzkaller.appspotmail.com>
Fixes: 6610e089

 ("RTC: Rework RTC code to use timerqueue for events")
Link: https://lore.kernel.org/r/20191020231320.8191-1-alexandre.belloni@bootlin.com
Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
parent d4e7102c
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment