From: Arve Hjønnevåg Date: Wed, 23 Nov 2011 02:24:51 +0000 (-0800) Subject: rtc: Fix some bugs that allowed accumulating time drift in suspend/resume X-Git-Tag: v3.2-rc5~43^2~3 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6a8943d9ec2567572fca25cf69ad45844d0141a3;p=pandora-kernel.git rtc: Fix some bugs that allowed accumulating time drift in suspend/resume The current code checks if abs(delta_delta.tv_sec) is greater or equal to two before it discards the old delta value, but this can trigger at close to -1 seconds since -1.000000001 seconds is stored as tv_sec -2 and tv_nsec 999999999 in a normalized timespec. rtc_resume had an early return check if the rtc value had not changed since rtc_suspend. This effectivly stops time for the duration of the short sleep. Check if sleep_time is positive after all the adjustments have been applied instead since this allows the old_system adjustment in rtc_suspend to have an effect even for short sleep cycles. CC: stable@kernel.org Signed-off-by: Arve Hjønnevåg Signed-off-by: John Stultz --- Reading git-diff-tree failed