Skip to content

Commit

Permalink
[PATCH] Detect clock skew during suspend
Browse files Browse the repository at this point in the history
Detect the situations in which the time after a resume from disk would
be earlier than the time before the suspend and prevent them from
happening on x86_64.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Andi Kleen <ak@suse.de>
  • Loading branch information
Rafael J. Wysocki authored and Andi Kleen committed Sep 26, 2006
1 parent a549b86 commit 34464a5
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion arch/x86_64/kernel/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -1039,8 +1039,16 @@ static int timer_resume(struct sys_device *dev)
unsigned long flags;
unsigned long sec;
unsigned long ctime = get_cmos_time();
unsigned long sleep_length = (ctime - sleep_start) * HZ;
long sleep_length = (ctime - sleep_start) * HZ;

if (sleep_length < 0) {
printk(KERN_WARNING "Time skew detected in timer resume!\n");
/* The time after the resume must not be earlier than the time
* before the suspend or some nasty things will happen
*/
sleep_length = 0;
ctime = sleep_start;
}
if (vxtime.hpet_address)
hpet_reenable();
else
Expand Down

0 comments on commit 34464a5

Please sign in to comment.