diff options
| -rw-r--r-- | arch/um/include/shared/timer-internal.h | 14 | ||||
| -rw-r--r-- | arch/um/kernel/process.c | 2 | ||||
| -rw-r--r-- | arch/um/kernel/time.c | 16 | 
3 files changed, 20 insertions, 12 deletions
diff --git a/arch/um/include/shared/timer-internal.h b/arch/um/include/shared/timer-internal.h index 8574338bf23b..9991ec2371e4 100644 --- a/arch/um/include/shared/timer-internal.h +++ b/arch/um/include/shared/timer-internal.h @@ -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 @@ -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)  {  } diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c index 67c0d1a860e9..6bede7888fc2 100644 --- a/arch/um/kernel/process.c +++ b/arch/um/kernel/process.c @@ -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 diff --git a/arch/um/kernel/time.c b/arch/um/kernel/time.c index 6a051b078359..234757233355 100644 --- a/arch/um/kernel/time.c +++ b/arch/um/kernel/time.c @@ -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(); @@ -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); @@ -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);  | 
