diff options
author | Ashok Raj <ashok.raj@intel.com> | 2005-11-11 17:32:40 -0500 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2006-01-05 13:24:20 -0500 |
commit | ff741906ad3cf4b8ca1a958acb013a97a6381ca2 (patch) | |
tree | 66a4c2dbacd4c10015824a6789f9206693003092 /arch/ia64/kernel/mca.c | |
parent | db9edfd7e339ca4113153d887e782dd05be5a9eb (diff) |
[IA64] support for cpu0 removal
here is the BSP removal support for IA64. Its pretty much the same thing that
was released a while back, but has your feedback incorporated.
- Removed CONFIG_BSP_REMOVE_WORKAROUND and associated cmdline param
- Fixed compile issue with sn2/zx1 due to a undefined fix_b0_for_bsp
- some formatting nits (whitespace etc)
This has been tested on tiger and long back by alex on hp systems as well.
Signed-off-by: Ashok Raj <ashok.raj@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/kernel/mca.c')
-rw-r--r-- | arch/ia64/kernel/mca.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index 355af15287c7..967571b466a2 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c | |||
@@ -289,6 +289,7 @@ ia64_mca_log_sal_error_record(int sal_info_type) | |||
289 | #ifdef CONFIG_ACPI | 289 | #ifdef CONFIG_ACPI |
290 | 290 | ||
291 | int cpe_vector = -1; | 291 | int cpe_vector = -1; |
292 | int ia64_cpe_irq = -1; | ||
292 | 293 | ||
293 | static irqreturn_t | 294 | static irqreturn_t |
294 | ia64_mca_cpe_int_handler (int cpe_irq, void *arg, struct pt_regs *ptregs) | 295 | ia64_mca_cpe_int_handler (int cpe_irq, void *arg, struct pt_regs *ptregs) |
@@ -1444,11 +1445,13 @@ void __devinit | |||
1444 | ia64_mca_cpu_init(void *cpu_data) | 1445 | ia64_mca_cpu_init(void *cpu_data) |
1445 | { | 1446 | { |
1446 | void *pal_vaddr; | 1447 | void *pal_vaddr; |
1448 | static int first_time = 1; | ||
1447 | 1449 | ||
1448 | if (smp_processor_id() == 0) { | 1450 | if (first_time) { |
1449 | void *mca_data; | 1451 | void *mca_data; |
1450 | int cpu; | 1452 | int cpu; |
1451 | 1453 | ||
1454 | first_time = 0; | ||
1452 | mca_data = alloc_bootmem(sizeof(struct ia64_mca_cpu) | 1455 | mca_data = alloc_bootmem(sizeof(struct ia64_mca_cpu) |
1453 | * NR_CPUS + KERNEL_STACK_SIZE); | 1456 | * NR_CPUS + KERNEL_STACK_SIZE); |
1454 | mca_data = (void *)(((unsigned long)mca_data + | 1457 | mca_data = (void *)(((unsigned long)mca_data + |
@@ -1704,6 +1707,7 @@ ia64_mca_late_init(void) | |||
1704 | desc = irq_descp(irq); | 1707 | desc = irq_descp(irq); |
1705 | desc->status |= IRQ_PER_CPU; | 1708 | desc->status |= IRQ_PER_CPU; |
1706 | setup_irq(irq, &mca_cpe_irqaction); | 1709 | setup_irq(irq, &mca_cpe_irqaction); |
1710 | ia64_cpe_irq = irq; | ||
1707 | } | 1711 | } |
1708 | ia64_mca_register_cpev(cpe_vector); | 1712 | ia64_mca_register_cpev(cpe_vector); |
1709 | IA64_MCA_DEBUG("%s: CPEI/P setup and enabled.\n", __FUNCTION__); | 1713 | IA64_MCA_DEBUG("%s: CPEI/P setup and enabled.\n", __FUNCTION__); |