summaryrefslogtreecommitdiff
path: root/arch/x86_64/kernel/pmtimer.c
diff options
context:
space:
mode:
authorShaohua Li <shaohua.li@intel.com>2006-02-03 21:50:56 +0100
committerLinus Torvalds <torvalds@g5.osdl.org>2006-02-04 16:43:13 -0800
commit0dd2ea9af8f0eca43cf6200baa182b3aba307049 (patch)
tree68d19724e9c50e14ea7d900493a9af37ff26c948 /arch/x86_64/kernel/pmtimer.c
parent6f3814cd2fb5ea4d53a7fa5b0635d68fa4036c1b (diff)
[PATCH] x86_64: [PATCH] timer resume
At resume time, TSC's value or something similar might be changed a lot against suspend time. This could make system gets a very big lost ticks. See http://bugzilla.kernel.org/show_bug.cgi?id=5825 Signed-off-by: Shaohua Li<shaohua.li@intel.com> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/x86_64/kernel/pmtimer.c')
-rw-r--r--arch/x86_64/kernel/pmtimer.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/x86_64/kernel/pmtimer.c b/arch/x86_64/kernel/pmtimer.c
index feb5f108dd26..8b2655ae4e61 100644
--- a/arch/x86_64/kernel/pmtimer.c
+++ b/arch/x86_64/kernel/pmtimer.c
@@ -80,6 +80,11 @@ int pmtimer_mark_offset(void)
return lost - 1;
}
+void pmtimer_resume(void)
+{
+ last_pmtmr_tick = inl(pmtmr_ioport);
+}
+
unsigned int do_gettimeoffset_pm(void)
{
u32 now, offset, delta = 0;