aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/i386/apic.c
diff options
context:
space:
mode:
Diffstat (limited to 'xen/arch/i386/apic.c')
-rw-r--r--xen/arch/i386/apic.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/xen/arch/i386/apic.c b/xen/arch/i386/apic.c
index 865a279d8c..0acf7067c3 100644
--- a/xen/arch/i386/apic.c
+++ b/xen/arch/i386/apic.c
@@ -659,6 +659,13 @@ int reprogram_ac_timer(s_time_t timeout)
s_time_t expire;
u64 apic_tmict;
+ if (timeout == 0) {
+ /* XXX RN: not sure if this disables it or cause interruptto
+ * go off imediately */
+ apic_tmict = 0;
+ goto reprogram;
+ }
+
now = NOW();
expire = timeout - now; /* value from now */
@@ -680,6 +687,7 @@ int reprogram_ac_timer(s_time_t timeout)
return 0;
}
+ reprogram:
/* programm timer */
apic_write(APIC_TMICT, (unsigned long)apic_tmict);