[PARISC] clocksource: Move update_cr16_clocksource later in boot

smp_cpus_done is too early for us... before we even do a device
inventory! Move update_cr16_clocksource into the tail end of
processor_probe() and stub it out on CONFIG_SMP=n builds.

Verified that clocksource0 is properly updated to use jiffies
on an SMP build.

Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
This commit is contained in:
Kyle McMartin 2007-02-26 22:21:22 -05:00
parent fb55a0debe
commit 01363220f5
3 changed files with 13 additions and 4 deletions

View File

@ -48,6 +48,8 @@ EXPORT_SYMBOL(boot_cpu_data);
struct cpuinfo_parisc cpu_data[NR_CPUS] __read_mostly;
extern int update_cr16_clocksource(void); /* from time.c */
/*
** PARISC CPU driver - claim "device" and initialize CPU data structures.
**
@ -198,6 +200,12 @@ static int __init processor_probe(struct parisc_device *dev)
}
#endif
/* If we've registered more than one cpu,
* we'll use the jiffies clocksource since cr16
* is not synchronized between CPUs.
*/
update_cr16_clocksource();
return 0;
}

View File

@ -567,10 +567,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
void smp_cpus_done(unsigned int cpu_max)
{
extern int update_cr16_clocksource(void);
update_cr16_clocksource();
return;
}

View File

@ -200,6 +200,11 @@ int update_cr16_clocksource(void)
return change;
}
#else
int update_cr16_clocksource(void)
{
return 0; /* no change */
}
#endif /*CONFIG_SMP*/
void __init start_cpu_itimer(void)