diff options
author | Daniel Hellstrom <daniel@gaisler.com> | 2011-04-21 00:20:23 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-04-21 19:44:44 -0400 |
commit | 5fcafb7a23e35b2f1a5243f4dd536240f52c8ceb (patch) | |
tree | f3967b2d935e2e492d55ec80d69c3437750cdde0 /arch/sparc/kernel/sun4d_irq.c | |
parent | 1827237065815373421c087c84d2a779d61c13d3 (diff) |
sparc32: always define boot_cpu_id
Define boot_cpu_id in single-processor kernels as well. This is
to support architectures which can boot on other than CPU0.
Sam Ravnborg has written the cleanup parts by extracting
boot_cpu_id from smp_32.c into setup_32.c and cleaned up
sun4d_irq.c.
boot_cpu_id was initialized before BSS was cleared in
sun4c_continue_boot, instead boot_cpu_id is set to 0xff to
avoid BSS. If boot_cpu_id is untouched (0xff) by bootup code
it will be overwritten to 0. boot_cpu_id4 is automatically
calculated in common code.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/kernel/sun4d_irq.c')
-rw-r--r-- | arch/sparc/kernel/sun4d_irq.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/sparc/kernel/sun4d_irq.c b/arch/sparc/kernel/sun4d_irq.c index 14a043531dcb..b830914e32d3 100644 --- a/arch/sparc/kernel/sun4d_irq.c +++ b/arch/sparc/kernel/sun4d_irq.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <asm/io.h> | 14 | #include <asm/io.h> |
15 | #include <asm/sbi.h> | 15 | #include <asm/sbi.h> |
16 | #include <asm/cacheflush.h> | 16 | #include <asm/cacheflush.h> |
17 | #include <asm/setup.h> | ||
17 | 18 | ||
18 | #include "kernel.h" | 19 | #include "kernel.h" |
19 | #include "irq.h" | 20 | #include "irq.h" |
@@ -438,11 +439,9 @@ static void __init sun4d_init_timers(irq_handler_t counter_fn) | |||
438 | void __init sun4d_init_sbi_irq(void) | 439 | void __init sun4d_init_sbi_irq(void) |
439 | { | 440 | { |
440 | struct device_node *dp; | 441 | struct device_node *dp; |
441 | int target_cpu = 0; | 442 | int target_cpu; |
442 | 443 | ||
443 | #ifdef CONFIG_SMP | ||
444 | target_cpu = boot_cpu_id; | 444 | target_cpu = boot_cpu_id; |
445 | #endif | ||
446 | for_each_node_by_name(dp, "sbi") { | 445 | for_each_node_by_name(dp, "sbi") { |
447 | int devid = of_getintprop_default(dp, "device-id", 0); | 446 | int devid = of_getintprop_default(dp, "device-id", 0); |
448 | int board = of_getintprop_default(dp, "board#", 0); | 447 | int board = of_getintprop_default(dp, "board#", 0); |