summaryrefslogtreecommitdiffstats
path: root/kernel/sched_clock.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-01-06 17:10:33 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2009-01-06 17:10:33 -0800
commitcfa97f993c275d193fe82c22511dfb5f1e51b661 (patch)
tree552cea5db0ef07bbcc5d53850607dcda6f9b664c /kernel/sched_clock.c
parent7238eb4ca35cd63340dc02caf757376e40c1210c (diff)
parentdb2f59c8c9b315f2b88b1dac159b988c6009034d (diff)
downloadkernel-crypto-cfa97f993c275d193fe82c22511dfb5f1e51b661.tar.gz
kernel-crypto-cfa97f993c275d193fe82c22511dfb5f1e51b661.tar.xz
kernel-crypto-cfa97f993c275d193fe82c22511dfb5f1e51b661.zip
Merge branch 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: sched: fix section mismatch sched: fix double kfree in failure path sched: clean up arch_reinit_sched_domains() sched: mark sched_create_sysfs_power_savings_entries() as __init getrusage: RUSAGE_THREAD should return ru_utime and ru_stime sched: fix sched_slice() sched_clock: prevent scd->clock from moving backwards, take #2 sched: sched.c declare variables before they get used
Diffstat (limited to 'kernel/sched_clock.c')
-rw-r--r--kernel/sched_clock.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/sched_clock.c b/kernel/sched_clock.c
index e8ab096ddfe..a0b0852414c 100644
--- a/kernel/sched_clock.c
+++ b/kernel/sched_clock.c
@@ -124,7 +124,7 @@ static u64 __update_sched_clock(struct sched_clock_data *scd, u64 now)
clock = scd->tick_gtod + delta;
min_clock = wrap_max(scd->tick_gtod, scd->clock);
- max_clock = scd->tick_gtod + TICK_NSEC;
+ max_clock = wrap_max(scd->clock, scd->tick_gtod + TICK_NSEC);
clock = wrap_max(clock, min_clock);
clock = wrap_min(clock, max_clock);
@@ -227,6 +227,9 @@ EXPORT_SYMBOL_GPL(sched_clock_idle_sleep_event);
*/
void sched_clock_idle_wakeup_event(u64 delta_ns)
{
+ if (timekeeping_suspended)
+ return;
+
sched_clock_tick();
touch_softlockup_watchdog();
}