Loading arch/um/include/shared/timer-internal.h +10 −4 Original line number Diff line number Diff line Loading @@ -34,10 +34,13 @@ static inline void time_travel_set_time(unsigned long long ns) time_travel_time = ns; } static inline void time_travel_set_timer(enum time_travel_timer_mode mode, unsigned long long expiry) static inline void time_travel_set_timer_mode(enum time_travel_timer_mode mode) { time_travel_timer_mode = mode; } static inline void time_travel_set_timer_expiry(unsigned long long expiry) { time_travel_timer_expiry = expiry; } #else Loading @@ -50,8 +53,11 @@ static inline void time_travel_set_time(unsigned long long ns) { } static inline void time_travel_set_timer(enum time_travel_timer_mode mode, unsigned long long expiry) static inline void time_travel_set_timer_mode(enum time_travel_timer_mode mode) { } static inline void time_travel_set_timer_expiry(unsigned long long expiry) { } Loading arch/um/kernel/process.c +1 −1 Original line number Diff line number Diff line Loading @@ -213,7 +213,7 @@ static void time_travel_sleep(unsigned long long duration) if (time_travel_timer_mode != TT_TMR_DISABLED || time_travel_timer_expiry < next) { if (time_travel_timer_mode == TT_TMR_ONESHOT) time_travel_set_timer(TT_TMR_DISABLED, 0); time_travel_set_timer_mode(TT_TMR_DISABLED); /* * time_travel_time will be adjusted in the timer * IRQ handler so it works even when the signal Loading arch/um/kernel/time.c +9 −7 Original line number Diff line number Diff line Loading @@ -50,7 +50,7 @@ void timer_handler(int sig, struct siginfo *unused_si, struct uml_pt_regs *regs) static int itimer_shutdown(struct clock_event_device *evt) { if (time_travel_mode != TT_MODE_OFF) time_travel_set_timer(TT_TMR_DISABLED, 0); time_travel_set_timer_mode(TT_TMR_DISABLED); if (time_travel_mode != TT_MODE_INFCPU) os_timer_disable(); Loading @@ -62,9 +62,10 @@ static int itimer_set_periodic(struct clock_event_device *evt) { unsigned long long interval = NSEC_PER_SEC / HZ; if (time_travel_mode != TT_MODE_OFF) time_travel_set_timer(TT_TMR_PERIODIC, time_travel_time + interval); if (time_travel_mode != TT_MODE_OFF) { time_travel_set_timer_mode(TT_TMR_PERIODIC); time_travel_set_timer_expiry(time_travel_time + interval); } if (time_travel_mode != TT_MODE_INFCPU) os_timer_set_interval(interval); Loading @@ -77,9 +78,10 @@ static int itimer_next_event(unsigned long delta, { delta += 1; if (time_travel_mode != TT_MODE_OFF) time_travel_set_timer(TT_TMR_ONESHOT, time_travel_time + delta); if (time_travel_mode != TT_MODE_OFF) { time_travel_set_timer_mode(TT_TMR_ONESHOT); time_travel_set_timer_expiry(time_travel_time + delta); } if (time_travel_mode != TT_MODE_INFCPU) return os_timer_one_shot(delta); Loading Loading
arch/um/include/shared/timer-internal.h +10 −4 Original line number Diff line number Diff line Loading @@ -34,10 +34,13 @@ static inline void time_travel_set_time(unsigned long long ns) time_travel_time = ns; } static inline void time_travel_set_timer(enum time_travel_timer_mode mode, unsigned long long expiry) static inline void time_travel_set_timer_mode(enum time_travel_timer_mode mode) { time_travel_timer_mode = mode; } static inline void time_travel_set_timer_expiry(unsigned long long expiry) { time_travel_timer_expiry = expiry; } #else Loading @@ -50,8 +53,11 @@ static inline void time_travel_set_time(unsigned long long ns) { } static inline void time_travel_set_timer(enum time_travel_timer_mode mode, unsigned long long expiry) static inline void time_travel_set_timer_mode(enum time_travel_timer_mode mode) { } static inline void time_travel_set_timer_expiry(unsigned long long expiry) { } Loading
arch/um/kernel/process.c +1 −1 Original line number Diff line number Diff line Loading @@ -213,7 +213,7 @@ static void time_travel_sleep(unsigned long long duration) if (time_travel_timer_mode != TT_TMR_DISABLED || time_travel_timer_expiry < next) { if (time_travel_timer_mode == TT_TMR_ONESHOT) time_travel_set_timer(TT_TMR_DISABLED, 0); time_travel_set_timer_mode(TT_TMR_DISABLED); /* * time_travel_time will be adjusted in the timer * IRQ handler so it works even when the signal Loading
arch/um/kernel/time.c +9 −7 Original line number Diff line number Diff line Loading @@ -50,7 +50,7 @@ void timer_handler(int sig, struct siginfo *unused_si, struct uml_pt_regs *regs) static int itimer_shutdown(struct clock_event_device *evt) { if (time_travel_mode != TT_MODE_OFF) time_travel_set_timer(TT_TMR_DISABLED, 0); time_travel_set_timer_mode(TT_TMR_DISABLED); if (time_travel_mode != TT_MODE_INFCPU) os_timer_disable(); Loading @@ -62,9 +62,10 @@ static int itimer_set_periodic(struct clock_event_device *evt) { unsigned long long interval = NSEC_PER_SEC / HZ; if (time_travel_mode != TT_MODE_OFF) time_travel_set_timer(TT_TMR_PERIODIC, time_travel_time + interval); if (time_travel_mode != TT_MODE_OFF) { time_travel_set_timer_mode(TT_TMR_PERIODIC); time_travel_set_timer_expiry(time_travel_time + interval); } if (time_travel_mode != TT_MODE_INFCPU) os_timer_set_interval(interval); Loading @@ -77,9 +78,10 @@ static int itimer_next_event(unsigned long delta, { delta += 1; if (time_travel_mode != TT_MODE_OFF) time_travel_set_timer(TT_TMR_ONESHOT, time_travel_time + delta); if (time_travel_mode != TT_MODE_OFF) { time_travel_set_timer_mode(TT_TMR_ONESHOT); time_travel_set_timer_expiry(time_travel_time + delta); } if (time_travel_mode != TT_MODE_INFCPU) return os_timer_one_shot(delta); Loading