mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-10-14 23:13:30 +00:00
cpus: fix TCG kick timer leak
This is an alternative fix to Marc-André's original patch. Reported-by: Marc-André Lureau <marcandre.lureau@redhat.com> Suggested-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20180927171724.30128-1-alex.bennee@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
687ac05d71
commit
1926ab273b
5
cpus.c
5
cpus.c
|
@ -983,6 +983,8 @@ static void start_tcg_kick_timer(void)
|
||||||
if (!tcg_kick_vcpu_timer && CPU_NEXT(first_cpu)) {
|
if (!tcg_kick_vcpu_timer && CPU_NEXT(first_cpu)) {
|
||||||
tcg_kick_vcpu_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL,
|
tcg_kick_vcpu_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL,
|
||||||
kick_tcg_thread, NULL);
|
kick_tcg_thread, NULL);
|
||||||
|
}
|
||||||
|
if (tcg_kick_vcpu_timer && !timer_pending(tcg_kick_vcpu_timer)) {
|
||||||
timer_mod(tcg_kick_vcpu_timer, qemu_tcg_next_kick());
|
timer_mod(tcg_kick_vcpu_timer, qemu_tcg_next_kick());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -990,9 +992,8 @@ static void start_tcg_kick_timer(void)
|
||||||
static void stop_tcg_kick_timer(void)
|
static void stop_tcg_kick_timer(void)
|
||||||
{
|
{
|
||||||
assert(!mttcg_enabled);
|
assert(!mttcg_enabled);
|
||||||
if (tcg_kick_vcpu_timer) {
|
if (tcg_kick_vcpu_timer && timer_pending(tcg_kick_vcpu_timer)) {
|
||||||
timer_del(tcg_kick_vcpu_timer);
|
timer_del(tcg_kick_vcpu_timer);
|
||||||
tcg_kick_vcpu_timer = NULL;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue