From patchwork Wed Oct 31 15:30:25 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [v2,08/39] qemu-timer: make initialization functions idempotent Date: Wed, 31 Oct 2012 05:30:25 -0000 From: Paolo Bonzini X-Patchwork-Id: 195932 Message-Id: <1351697456-16107-9-git-send-email-pbonzini@redhat.com> To: qemu-devel@nongnu.org Cc: aliguori@us.ibm.com, stefanha@redhat.com Signed-off-by: Paolo Bonzini --- qemu-timer.c | 12 +++++++++--- 1 file modificato, 9 inserzioni(+), 3 rimozioni(-) diff --git a/qemu-timer.c b/qemu-timer.c index 908a103..b71e9a6 100644 --- a/qemu-timer.c +++ b/qemu-timer.c @@ -430,9 +430,11 @@ void qemu_unregister_clock_reset_notifier(QEMUClock *clock, Notifier *notifier) void init_clocks(void) { - rt_clock = qemu_new_clock(QEMU_CLOCK_REALTIME); - vm_clock = qemu_new_clock(QEMU_CLOCK_VIRTUAL); - host_clock = qemu_new_clock(QEMU_CLOCK_HOST); + if (!rt_clock) { + rt_clock = qemu_new_clock(QEMU_CLOCK_REALTIME); + vm_clock = qemu_new_clock(QEMU_CLOCK_VIRTUAL); + host_clock = qemu_new_clock(QEMU_CLOCK_HOST); + } } uint64_t qemu_timer_expire_time_ns(QEMUTimer *ts) @@ -745,6 +747,10 @@ int init_timer_alarm(void) struct qemu_alarm_timer *t = NULL; int i, err = -1; + if (alarm_timer) { + return 0; + } + for (i = 0; alarm_timers[i].name; i++) { t = &alarm_timers[i];