diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2005-12-10 21:41:50 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2005-12-11 22:26:39 -0500 |
commit | ef969434005e772218c0b8086539804605070fa8 (patch) | |
tree | f47f7edd35a4cb30d2d5155e3c26343481208649 | |
parent | b39f9485e6cfe1bf21b18b60fd8c631a72a1304d (diff) |
[PATCH] ppc32: set smp_tb_synchronized on UP with SMP kernel
ppc32 kernel, when built with CONFIG_SMP and booted on a single CPU
machine, will not properly set smp_tb_synchronized, thus causing
gettimeofday() to not use the HW timebase and to be limited to jiffy
resolution. This, among others, causes unacceptable pauses when launching
X.org.
Signed-Off-By: Johannes Berg <johannes@sipsolutions.net>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r-- | arch/ppc/kernel/smp.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/ppc/kernel/smp.c b/arch/ppc/kernel/smp.c index 43b8fc2ca591..becbfa397556 100644 --- a/arch/ppc/kernel/smp.c +++ b/arch/ppc/kernel/smp.c | |||
@@ -301,6 +301,10 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
301 | 301 | ||
302 | /* Probe platform for CPUs: always linear. */ | 302 | /* Probe platform for CPUs: always linear. */ |
303 | num_cpus = smp_ops->probe(); | 303 | num_cpus = smp_ops->probe(); |
304 | |||
305 | if (num_cpus < 2) | ||
306 | smp_tb_synchronized = 1; | ||
307 | |||
304 | for (i = 0; i < num_cpus; ++i) | 308 | for (i = 0; i < num_cpus; ++i) |
305 | cpu_set(i, cpu_possible_map); | 309 | cpu_set(i, cpu_possible_map); |
306 | 310 | ||