]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
qemu_rearm_alarm_timer: do not call rearm if the next deadline is INT64_MAX
authorStefano Stabellini <stefano.stabellini@eu.citrix.com>
Tue, 29 May 2012 03:35:24 +0000 (03:35 +0000)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Wed, 5 Sep 2012 15:30:38 +0000 (10:30 -0500)
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 <stefano.stabellini@eu.citrix.com>
Reviewed-by: Stefan Weil <sw@weilnetz.de>
Tested-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
(cherry picked from commit 8227421e0476d9caf2a9a089465bb40c23834e33)

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
qemu-timer.c

index de9897788de59a78130874f1cceb26e3d1a0edd2..d37a978397dfc6041ed35557f4aa47b15539bc00 100644 (file)
@@ -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 */