diff -r 6c0a0284d9cb xen/common/timer.c --- a/xen/common/timer.c Mon May 19 13:47:12 2014 +0100 +++ b/xen/common/timer.c Mon May 19 13:49:26 2014 +0100 @@ -493,7 +493,7 @@ if ( (ts->list != NULL) && (ts->list->expires < deadline) ) deadline = ts->list->expires; this_cpu(timer_deadline) = - (deadline == STIME_MAX) ? 0 : deadline + timer_slop; + (deadline == STIME_MAX) ? 0 : MAX(deadline, now + timer_slop); if ( !reprogram_timer(this_cpu(timer_deadline)) ) raise_softirq(TIMER_SOFTIRQ);