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) | |||
34 | time_travel_time = ns; | 34 | time_travel_time = ns; |
35 | } | 35 | } |
36 | 36 | ||
37 | static inline void time_travel_set_timer(enum time_travel_timer_mode mode, | 37 | static inline void time_travel_set_timer_mode(enum time_travel_timer_mode mode) |
38 | unsigned long long expiry) | ||
39 | { | 38 | { |
40 | time_travel_timer_mode = mode; | 39 | time_travel_timer_mode = mode; |
40 | } | ||
41 | |||
42 | static inline void time_travel_set_timer_expiry(unsigned long long expiry) | ||
43 | { | ||
41 | time_travel_timer_expiry = expiry; | 44 | time_travel_timer_expiry = expiry; |
42 | } | 45 | } |
43 | #else | 46 | #else |
@@ -50,8 +53,11 @@ static inline void time_travel_set_time(unsigned long long ns) | |||
50 | { | 53 | { |
51 | } | 54 | } |
52 | 55 | ||
53 | static inline void time_travel_set_timer(enum time_travel_timer_mode mode, | 56 | static inline void time_travel_set_timer_mode(enum time_travel_timer_mode mode) |
54 | unsigned long long expiry) | 57 | { |
58 | } | ||
59 | |||
60 | static inline void time_travel_set_timer_expiry(unsigned long long expiry) | ||
55 | { | 61 | { |
56 | } | 62 | } |
57 | 63 | ||
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) | |||
213 | if (time_travel_timer_mode != TT_TMR_DISABLED || | 213 | if (time_travel_timer_mode != TT_TMR_DISABLED || |
214 | time_travel_timer_expiry < next) { | 214 | time_travel_timer_expiry < next) { |
215 | if (time_travel_timer_mode == TT_TMR_ONESHOT) | 215 | if (time_travel_timer_mode == TT_TMR_ONESHOT) |
216 | time_travel_set_timer(TT_TMR_DISABLED, 0); | 216 | time_travel_set_timer_mode(TT_TMR_DISABLED); |
217 | /* | 217 | /* |
218 | * time_travel_time will be adjusted in the timer | 218 | * time_travel_time will be adjusted in the timer |
219 | * IRQ handler so it works even when the signal | 219 | * 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) | |||
50 | static int itimer_shutdown(struct clock_event_device *evt) | 50 | static int itimer_shutdown(struct clock_event_device *evt) |
51 | { | 51 | { |
52 | if (time_travel_mode != TT_MODE_OFF) | 52 | if (time_travel_mode != TT_MODE_OFF) |
53 | time_travel_set_timer(TT_TMR_DISABLED, 0); | 53 | time_travel_set_timer_mode(TT_TMR_DISABLED); |
54 | 54 | ||
55 | if (time_travel_mode != TT_MODE_INFCPU) | 55 | if (time_travel_mode != TT_MODE_INFCPU) |
56 | os_timer_disable(); | 56 | os_timer_disable(); |
@@ -62,9 +62,10 @@ static int itimer_set_periodic(struct clock_event_device *evt) | |||
62 | { | 62 | { |
63 | unsigned long long interval = NSEC_PER_SEC / HZ; | 63 | unsigned long long interval = NSEC_PER_SEC / HZ; |
64 | 64 | ||
65 | if (time_travel_mode != TT_MODE_OFF) | 65 | if (time_travel_mode != TT_MODE_OFF) { |
66 | time_travel_set_timer(TT_TMR_PERIODIC, | 66 | time_travel_set_timer_mode(TT_TMR_PERIODIC); |
67 | time_travel_time + interval); | 67 | time_travel_set_timer_expiry(time_travel_time + interval); |
68 | } | ||
68 | 69 | ||
69 | if (time_travel_mode != TT_MODE_INFCPU) | 70 | if (time_travel_mode != TT_MODE_INFCPU) |
70 | os_timer_set_interval(interval); | 71 | os_timer_set_interval(interval); |
@@ -77,9 +78,10 @@ static int itimer_next_event(unsigned long delta, | |||
77 | { | 78 | { |
78 | delta += 1; | 79 | delta += 1; |
79 | 80 | ||
80 | if (time_travel_mode != TT_MODE_OFF) | 81 | if (time_travel_mode != TT_MODE_OFF) { |
81 | time_travel_set_timer(TT_TMR_ONESHOT, | 82 | time_travel_set_timer_mode(TT_TMR_ONESHOT); |
82 | time_travel_time + delta); | 83 | time_travel_set_timer_expiry(time_travel_time + delta); |
84 | } | ||
83 | 85 | ||
84 | if (time_travel_mode != TT_MODE_INFCPU) | 86 | if (time_travel_mode != TT_MODE_INFCPU) |
85 | return os_timer_one_shot(delta); | 87 | return os_timer_one_shot(delta); |