ia64/xen-unstable

view 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
line source
1 diff -pruN ../orig-linux-2.6.16.29/kernel/timer.c ./kernel/timer.c
2 --- ../orig-linux-2.6.16.29/kernel/timer.c 2006-09-12 19:02:10.000000000 +0100
3 +++ ./kernel/timer.c 2006-09-19 13:58:58.000000000 +0100
4 @@ -555,6 +555,22 @@ found:
5 }
6 spin_unlock(&base->t_base.lock);
8 + /*
9 + * It can happen that other CPUs service timer IRQs and increment
10 + * jiffies, but we have not yet got a local timer tick to process
11 + * the timer wheels. In that case, the expiry time can be before
12 + * jiffies, but since the high-resolution timer here is relative to
13 + * jiffies, the default expression when high-resolution timers are
14 + * not active,
15 + *
16 + * time_before(MAX_JIFFY_OFFSET + jiffies, expires)
17 + *
18 + * would falsely evaluate to true. If that is the case, just
19 + * return jiffies so that we can immediately fire the local timer
20 + */
21 + if (time_before(expires, jiffies))
22 + return jiffies;
23 +
24 if (time_before(hr_expires, expires))
25 return hr_expires;