ia64/xen-unstable
diff 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 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/patches/linux-2.6.16.29/fix-hz-suspend.patch Tue Sep 19 14:26:47 2006 +0100 1.3 @@ -0,0 +1,26 @@ 1.4 +diff -pruN ../orig-linux-2.6.16.29/kernel/timer.c ./kernel/timer.c 1.5 +--- ../orig-linux-2.6.16.29/kernel/timer.c 2006-09-12 19:02:10.000000000 +0100 1.6 ++++ ./kernel/timer.c 2006-09-19 13:58:58.000000000 +0100 1.7 +@@ -555,6 +555,22 @@ found: 1.8 + } 1.9 + spin_unlock(&base->t_base.lock); 1.10 + 1.11 ++ /* 1.12 ++ * It can happen that other CPUs service timer IRQs and increment 1.13 ++ * jiffies, but we have not yet got a local timer tick to process 1.14 ++ * the timer wheels. In that case, the expiry time can be before 1.15 ++ * jiffies, but since the high-resolution timer here is relative to 1.16 ++ * jiffies, the default expression when high-resolution timers are 1.17 ++ * not active, 1.18 ++ * 1.19 ++ * time_before(MAX_JIFFY_OFFSET + jiffies, expires) 1.20 ++ * 1.21 ++ * would falsely evaluate to true. If that is the case, just 1.22 ++ * return jiffies so that we can immediately fire the local timer 1.23 ++ */ 1.24 ++ if (time_before(expires, jiffies)) 1.25 ++ return jiffies; 1.26 ++ 1.27 + if (time_before(hr_expires, expires)) 1.28 + return hr_expires; 1.29 +