aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/timer.c
diff options
context:
space:
mode:
authorWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2016-02-16 13:18:55 +0100
committerWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2016-02-16 13:18:55 +0100
commit844bdd6097f60d393ecd060c4e376bc15dcd194e (patch)
tree9c7ff1343208574e021a6bcf08730f99db87fc47 /kernel/timer.c
parent4c52bc8a2ff3c0373d371995eaef34df98e1fa4c (diff)
parentb1ce5b792e0c6bddb9012dbbff63cfcc3a4aaf87 (diff)
downloadkernel_samsung_smdk4412-844bdd6097f60d393ecd060c4e376bc15dcd194e.zip
kernel_samsung_smdk4412-844bdd6097f60d393ecd060c4e376bc15dcd194e.tar.gz
kernel_samsung_smdk4412-844bdd6097f60d393ecd060c4e376bc15dcd194e.tar.bz2
Merge remote-tracking branch 'cyanogen/cm-13.0' into replicant-6.0-new
Signed-off-by: Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> Conflicts: Makefile firmware/Makefile firmware/epen/W9001_B713.bin.ihex firmware/epen/W9001_B746.bin.ihex firmware/epen/W9001_B746JD.bin.ihex firmware/epen/W9001_B746L.bin.ihex firmware/epen/W9001_B746S.bin.ihex
Diffstat (limited to 'kernel/timer.c')
-rw-r--r--kernel/timer.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/kernel/timer.c b/kernel/timer.c
index 27982d9..5eac0d8 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -145,9 +145,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;
}
/**
@@ -1630,12 +1632,12 @@ static int __cpuinit init_timers_cpu(int cpu)
boot_done = 1;
base = &boot_tvec_bases;
}
+ spin_lock_init(&base->lock);
tvec_base_done[cpu] = 1;
} else {
base = per_cpu(tvec_bases, cpu);
}
- spin_lock_init(&base->lock);
for (j = 0; j < TVN_SIZE; j++) {
INIT_LIST_HEAD(base->tv5.vec + j);