Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 34464a5b authored by Rafael J. Wysocki's avatar Rafael J. Wysocki Committed by Andi Kleen
Browse files

[PATCH] Detect clock skew during suspend



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: default avatarRafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: default avatarAndi Kleen <ak@suse.de>
parent a549b86d
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -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