summaryrefslogtreecommitdiffstats
path: root/include/asm-arm/smp.h
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2006-02-16 11:08:09 +0000
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-02-16 11:08:09 +0000
commit7bbb79403163e047c6e333ff169db34e3c969e65 (patch)
tree423e32c02baa1d61085c67865d11a448db34857a /include/asm-arm/smp.h
parentba09cf2bcf9b74d852dcb5ea957ac6af2bc0e057 (diff)
downloadlinux-7bbb79403163e047c6e333ff169db34e3c969e65.tar.gz
linux-7bbb79403163e047c6e333ff169db34e3c969e65.tar.bz2
linux-7bbb79403163e047c6e333ff169db34e3c969e65.zip
[ARM] Fix SMP initialisation oops
A change to the SMP initialisation caused the following oops: CPU1: Booted secondary processor CPU1: D VIPT write-back cache CPU1: I cache: 32768 bytes, associativity 4, 32 byte lines, 256 sets CPU1: D cache: 32768 bytes, associativity 4, 32 byte lines, 256 sets <7>Calibrating delay loop... 83.14 BogoMIPS (lpj=415744) <1>Unable to handle kernel NULL pointer dereference at virtual address 0000001c ... PC is at enqueue_task+0x1c/0x64 LR is at activate_task+0xcc/0xe4 SMP initialisation now requires cpu_possible_map to be initialised in setup_arch(). Move this from smp_prepare_cpus() to smp_init_cpus() and call it from our setup_arch() if CONFIG_SMP is enabled. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'include/asm-arm/smp.h')
-rw-r--r--include/asm-arm/smp.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/asm-arm/smp.h b/include/asm-arm/smp.h
index 5a72e50ca9fc..fe45f7f61223 100644
--- a/include/asm-arm/smp.h
+++ b/include/asm-arm/smp.h
@@ -42,6 +42,11 @@ extern void show_ipi_list(struct seq_file *p);
asmlinkage void do_IPI(struct pt_regs *regs);
/*
+ * Setup the SMP cpu_possible_map
+ */
+extern void smp_init_cpus(void);
+
+/*
* Move global data into per-processor storage.
*/
extern void smp_store_cpu_info(unsigned int cpuid);