Re: [patch 3/3] clockevents: Fix resume logic - updated version

Rafael J. Wysocki
2007-05-09T18:31:50Z

On Wednesday, 9 May 2007 19:15, Thomas Gleixner wrote:
> On Wed, 2007-05-09 at 19:09 +0200, Rafael J. Wysocki wrote:
> > > > Well, where is unregister_time_interpolator() called from?
> > >
> > > # grep -rn unregister_time_interpolator .
> > > ./kernel/timer.c:1893:unregister_time_interpolator(struct time_interpolator *ti)
> > > ./include/linux/timex.h:270:extern void unregister_time_interpolator(struct time_interpolator *);
> > >
> > > I don't see a caller. i386 does not use time interpolator anyway.
> > >
> > > # find -iname Kconfig | xargs grep TIME_INTERPOLATION
> > > ./arch/sparc64/Kconfig:37:config TIME_INTERPOLATION
> > > ./arch/ia64/Kconfig:60:config TIME_INTERPOLATION
> >
> > But clocksource_resume() has no other caller, AFAICS ...
>
> Eeep ?
>
> clocksource_resume is called from timekeeping_resume()
>
> timestatic int timekeeping_resume(struct sys_device *dev)
> {
> unsigned long flags;
> unsigned long now = read_persistent_clock();
>
> clocksource_resume();
> ....
> }
>
> keeping_resume() called via the sysdev resume
>
> static struct sysdev_class timekeeping_sysclass = {
> .resume = timekeeping_resume,
> .suspend = timekeeping_suspend,
> set_kset_name("timekeeping"),
> };

Well, apparently, not in -mm2:

rafael@albercik:~/src/mm/linux-2.6.21-mm2> grep -r -I -l 'timekeeping_resume' *
kernel/time/timekeeping.c
rafael@albercik:~/src/mm/linux-2.6.21-mm2> grep clocksource_resume kernel/time/timekeeping.c
rafael@albercik:~/src/mm/linux-2.6.21-mm2>

Hmm?

Rafael