From 8227421e0476d9caf2a9a089465bb40c23834e33 Mon Sep 17 00:00:00 2001 From: Stefano Stabellini Date: Tue, 29 May 2012 03:35:24 +0000 Subject: [PATCH] qemu_rearm_alarm_timer: do not call rearm if the next deadline is INT64_MAX MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit qemu_rearm_alarm_timer partially duplicates the code in qemu_next_alarm_deadline to figure out if it needs to rearm the timer. If it calls qemu_next_alarm_deadline, it always rearms the timer even if the next deadline is INT64_MAX. This patch simplifies the behavior of qemu_rearm_alarm_timer and removes the duplicated code, always calling qemu_next_alarm_deadline and only rearming the timer if the deadline is less than INT64_MAX. Signed-off-by: Stefano Stabellini Reviewed-by: Stefan Weil Tested-by: Andreas Färber Signed-off-by: Blue Swirl --- qemu-timer.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/qemu-timer.c b/qemu-timer.c index 062fdf2cb9..5aea94e8e0 100644 --- a/qemu-timer.c +++ b/qemu-timer.c @@ -112,14 +112,10 @@ static int64_t qemu_next_alarm_deadline(void) static void qemu_rearm_alarm_timer(struct qemu_alarm_timer *t) { - int64_t nearest_delta_ns; - if (!rt_clock->active_timers && - !vm_clock->active_timers && - !host_clock->active_timers) { - return; + int64_t nearest_delta_ns = qemu_next_alarm_deadline(); + if (nearest_delta_ns < INT64_MAX) { + t->rearm(t, nearest_delta_ns); } - nearest_delta_ns = qemu_next_alarm_deadline(); - t->rearm(t, nearest_delta_ns); } /* TODO: MIN_TIMER_REARM_NS should be optimized */ -- GitLab