ia64/xen-unstable
annotate patches/linux-2.6.16.29/fix-hz-suspend.patch @ 11540:041be3f6b38e
[linux patches] Update patches for linux-2.6.16.29.
Signed-off-by: Christian Limpach <Christian.Limpach@xensource.com>
Signed-off-by: Christian Limpach <Christian.Limpach@xensource.com>
author | Christian Limpach <Christian.Limpach@xensource.com> |
---|---|
date | Tue Sep 19 14:26:47 2006 +0100 (2006-09-19) |
parents | patches/linux-2.6.16.13/fix-hz-suspend.patch@18f8dde91fbd |
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 |