ia64/xen-unstable

annotate patches/linux-2.6.16.29/fix-hz-suspend.patch @ 12273:b223ba940ed1

PV-on-HVM: Fix PV-on-HVM drivers need maddr.h included for defn of maddr_t.
Signed-off-by: Takanori Kasai <Kasai.Takanori@jp.fujitsu.com>
Signed-off-by: Tsunehisa Doi <Doi.Tsunehisa@jp.fujitsu.com>
author kfraser@localhost.localdomain
date Tue Nov 07 09:29:53 2006 +0000 (2006-11-07)
parents 041be3f6b38e
children
rev   line source
Christian@11540 1 diff -pruN ../orig-linux-2.6.16.29/kernel/timer.c ./kernel/timer.c
Christian@11540 2 --- ../orig-linux-2.6.16.29/kernel/timer.c 2006-09-12 19:02:10.000000000 +0100
Christian@11540 3 +++ ./kernel/timer.c 2006-09-19 13:58:58.000000000 +0100
ack@10599 4 @@ -555,6 +555,22 @@ found:
ack@10587 5 }
ack@10587 6 spin_unlock(&base->t_base.lock);
ack@10587 7
ack@10587 8 + /*
ack@10599 9 + * It can happen that other CPUs service timer IRQs and increment
ack@10599 10 + * jiffies, but we have not yet got a local timer tick to process
ack@10599 11 + * the timer wheels. In that case, the expiry time can be before
ack@10599 12 + * jiffies, but since the high-resolution timer here is relative to
ack@10599 13 + * jiffies, the default expression when high-resolution timers are
ack@10599 14 + * not active,
ack@10599 15 + *
ack@10599 16 + * time_before(MAX_JIFFY_OFFSET + jiffies, expires)
ack@10599 17 + *
ack@10599 18 + * would falsely evaluate to true. If that is the case, just
ack@10599 19 + * return jiffies so that we can immediately fire the local timer
ack@10587 20 + */
ack@10599 21 + if (time_before(expires, jiffies))
ack@10599 22 + return jiffies;
ack@10599 23 +
ack@10599 24 if (time_before(hr_expires, expires))
ack@10587 25 return hr_expires;
ack@10587 26