projects
/
linux-2.6-microblaze.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
um: time-travel: Fix periodic timers
[linux-2.6-microblaze.git]
/
arch
/
um
/
kernel
/
process.c
diff --git
a/arch/um/kernel/process.c
b/arch/um/kernel/process.c
index
67c0d1a
..
cf242fc
100644
(file)
--- a/
arch/um/kernel/process.c
+++ b/
arch/um/kernel/process.c
@@
-210,10
+210,15
@@
static void time_travel_sleep(unsigned long long duration)
if (time_travel_mode != TT_MODE_INFCPU)
os_timer_disable();
if (time_travel_mode != TT_MODE_INFCPU)
os_timer_disable();
- if (time_travel_timer_mode != TT_TMR_DISABLED ||
+ while (time_travel_timer_mode == TT_TMR_PERIODIC &&
+ time_travel_timer_expiry < time_travel_time)
+ time_travel_set_timer_expiry(time_travel_timer_expiry +
+ time_travel_timer_interval);
+
+ if (time_travel_timer_mode != TT_TMR_DISABLED &&
time_travel_timer_expiry < next) {
if (time_travel_timer_mode == TT_TMR_ONESHOT)
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
/*
* time_travel_time will be adjusted in the timer
* IRQ handler so it works even when the signal