[ARM] Fix SMP initialisation oops
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Thu, 16 Feb 2006 11:08:09 +0000 (11:08 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 16 Feb 2006 11:08:09 +0000 (11:08 +0000)
commit7bbb79403163e047c6e333ff169db34e3c969e65
tree423e32c02baa1d61085c67865d11a448db34857a
parentba09cf2bcf9b74d852dcb5ea957ac6af2bc0e057
[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>
arch/arm/kernel/setup.c
arch/arm/kernel/smp.c
arch/arm/mach-integrator/platsmp.c
arch/arm/mach-realview/platsmp.c
include/asm-arm/smp.h