From eec94b8acb03aaaa6fb050883624381f5c07a3f0 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Tue, 10 Sep 2019 17:03:52 +0200 Subject: um: time-travel: Fix periodic timers Periodic timers are broken, because the also only fire once. As it happens, Linux doesn't care because it only sets the timer to periodic very briefly during boot, and then switches it only between one-shot and off later. Nevertheless, fix the logic (we shouldn't even be looking at time_travel_timer_expiry unless the timer is enabled) and change the code to fire the timer periodically in periodic mode, in case it ever gets used in the future. Signed-off-by: Johannes Berg Signed-off-by: Richard Weinberger --- arch/um/kernel/time.c | 1 + 1 file changed, 1 insertion(+) (limited to 'arch/um/kernel/time.c') diff --git a/arch/um/kernel/time.c b/arch/um/kernel/time.c index 234757233355..4ecabf7e54c9 100644 --- a/arch/um/kernel/time.c +++ b/arch/um/kernel/time.c @@ -65,6 +65,7 @@ static int itimer_set_periodic(struct clock_event_device *evt) if (time_travel_mode != TT_MODE_OFF) { time_travel_set_timer_mode(TT_TMR_PERIODIC); time_travel_set_timer_expiry(time_travel_time + interval); + time_travel_set_timer_interval(interval); } if (time_travel_mode != TT_MODE_INFCPU) -- cgit v1.2.3-59-g8ed1b