Messages in this thread | | | Date | Thu, 23 Oct 2003 13:23:16 -0700 | From | George Anzinger <> | Subject | Re: [pm] fix time after suspend-to-* |
| |
Pavel Machek wrote: > Hi! > > >>>+static int pit_resume(struct sys_device *dev) >>>+{ >>>+ if (got_clock_diff) { /* Must know time zone in order to set clock */ >>>+ xtime.tv_sec = get_cmos_time() + clock_cmos_diff; >>>+ xtime.tv_nsec = 0; >>>+ } >>>+ return 0; >>>+} >>>+ > > ... > >>Forgive me, I'm not totally familiar w/ the sysfs/pm stuff, but normally >>you need to have the xtime_lock to safely manipulate xtime. Also, >>couldn't you just call settimeofday() instead? The bit about manually >>setting the timezone also confuses me, as we don't normally do this at >>bootup in the kernel. >> > > > I took it straight from apm.c... But it is well possible that it needs > some locking. OTOH this runs with interrupts disabled, perhaps > thats enough?
I lost (never saw) the first of this thread, BUT, if this is 2.6, I strongly recommend that settimeofday() NOT be called. It will try to adjust wall_to_motonoic, but, as this appears to be a correction for time lost while sleeping, wall_to_monotonic should not change.
As to locking, ints off for UP, but you need the full lock for SMP systems.
-- George Anzinger george@mvista.com High-res-timers: http://sourceforge.net/projects/high-res-timers/ Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |