[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:
parent
fb55a0debe
commit
01363220f5
|
@ -48,6 +48,8 @@ EXPORT_SYMBOL(boot_cpu_data);
|
||||||
|
|
||||||
struct cpuinfo_parisc cpu_data[NR_CPUS] __read_mostly;
|
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.
|
** PARISC CPU driver - claim "device" and initialize CPU data structures.
|
||||||
**
|
**
|
||||||
|
@ -198,6 +200,12 @@ static int __init processor_probe(struct parisc_device *dev)
|
||||||
}
|
}
|
||||||
#endif
|
#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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -567,10 +567,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
|
||||||
|
|
||||||
void smp_cpus_done(unsigned int cpu_max)
|
void smp_cpus_done(unsigned int cpu_max)
|
||||||
{
|
{
|
||||||
extern int update_cr16_clocksource(void);
|
|
||||||
|
|
||||||
update_cr16_clocksource();
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -200,6 +200,11 @@ int update_cr16_clocksource(void)
|
||||||
|
|
||||||
return change;
|
return change;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
int update_cr16_clocksource(void)
|
||||||
|
{
|
||||||
|
return 0; /* no change */
|
||||||
|
}
|
||||||
#endif /*CONFIG_SMP*/
|
#endif /*CONFIG_SMP*/
|
||||||
|
|
||||||
void __init start_cpu_itimer(void)
|
void __init start_cpu_itimer(void)
|
||||||
|
|
Loading…
Reference in New Issue