projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
2699339
)
timer: Fix jiffies wrap behavior of round_jiffies_common()
author
Bart Van Assche
<
[email protected]
>
Tue, 21 May 2013 18:43:50 +0000
(20:43 +0200)
committer
Thomas Gleixner
<
[email protected]
>
Fri, 28 Jun 2013 15:10:11 +0000
(17:10 +0200)
Direct compare of jiffies related values does not work in the wrap
around case. Replace it with time_is_after_jiffies().
Signed-off-by: Bart Van Assche <
[email protected]
>
Cc: Arjan van de Ven <
[email protected]
>
Cc: Stephen Rothwell <
[email protected]
>
Link:
http://lkml.kernel.org/r/
[email protected]
Cc:
[email protected]
Signed-off-by: Thomas Gleixner <
[email protected]
>
kernel/timer.c
patch
|
blob
|
history
diff --git
a/kernel/timer.c
b/kernel/timer.c
index 15ffdb3f1948b9468c2c04527beb8190b0d79d45..15bc1b41021dae203b7d3c43293b5edd54cff4cb 100644
(file)
--- a/
kernel/timer.c
+++ b/
kernel/timer.c
@@
-149,9
+149,11
@@
static unsigned long round_jiffies_common(unsigned long j, int cpu,
/* now that we have rounded, subtract the extra skew again */
j -= cpu * 3;
- if (j <= jiffies) /* rounding ate our timeout entirely; */
- return original;
- return j;
+ /*
+ * Make sure j is still in the future. Otherwise return the
+ * unmodified value.
+ */
+ return time_is_after_jiffies(j) ? j : original;
}
/**