Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 01363220 authored by Kyle McMartin's avatar Kyle McMartin
Browse files

[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: default avatarKyle McMartin <kyle@parisc-linux.org>
parent fb55a0de
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -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;
}

+0 −4
Original line number Diff line number Diff line
@@ -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;
}

+5 −0
Original line number Diff line number Diff line
@@ -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)