The call to add_timer was issued before local_int.lock was taken and before timer_due was set to 0. If the timer expires before the lock is being taken, the timer function will set timer_due to 1 and exit before the vcpu falls asleep. Depending on other external events, the vcpu might sleep forever. This fix pulls setting timer_due to the beginning of the function before add_timer, which ensures correct behavior. Signed-off-by: Carsten Otte <cotte@de.ibm.com> Signed-off-by: Avi Kivity <avi@qumranet.com> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
diag.c | ||
gaccess.h | ||
intercept.c | ||
interrupt.c | ||
kvm-s390.c | ||
kvm-s390.h | ||
priv.c | ||
sie64a.S | ||
sigp.c |