git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[pandora-kernel.git]
/
kernel
/
timer.c
diff --git
a/kernel/timer.c
b/kernel/timer.c
index
e3b8c69
..
2454172
100644
(file)
--- a/
kernel/timer.c
+++ b/
kernel/timer.c
@@
-752,11
+752,15
@@
unsigned long apply_slack(struct timer_list *timer, unsigned long expires)
expires_limit = expires;
expires_limit = expires;
- if (timer->slack >
-1)
+ if (timer->slack >
= 0) {
expires_limit = expires + timer->slack;
expires_limit = expires + timer->slack;
- else if (time_after(expires, jiffies)) /* auto slack: use 0.4% */
-
expires_limit = expires + (expires - jiffies)/256
;
+ } else {
+
unsigned long now = jiffies
;
+ /* No slack, if already expired else auto slack 0.4% */
+ if (time_after(expires, now))
+ expires_limit = expires + (expires - now)/256;
+ }
mask = expires ^ expires_limit;
if (mask == 0)
return expires;
mask = expires ^ expires_limit;
if (mask == 0)
return expires;