summaryrefslogtreecommitdiff
path: root/arch/ia64/kernel/mca.c
diff options
context:
space:
mode:
authorTony Luck <tony.luck@intel.com>2006-03-21 19:16:21 +0300
committerTony Luck <tony.luck@intel.com>2006-03-21 19:16:21 +0300
commit536ea4e4198eeaa5a73fb734ea675e621609bb7e (patch)
tree321384a2233413d7df5f00b3356116c8b05ef08d /arch/ia64/kernel/mca.c
parent7705a8792b0fc82fd7d4dd923724606bbfd9fb20 (diff)
parentb88e926584bf100bc23f5e76b7b674d4257edcb0 (diff)
downloadlinux-536ea4e4198eeaa5a73fb734ea675e621609bb7e.tar.xz
Pull bsp-removal into release branch
Diffstat (limited to 'arch/ia64/kernel/mca.c')
-rw-r--r--arch/ia64/kernel/mca.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c
index ee7eec9ee576..87fb7cecead0 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)
#ifdef CONFIG_ACPI
int cpe_vector = -1;
+int ia64_cpe_irq = -1;
static irqreturn_t
ia64_mca_cpe_int_handler (int cpe_irq, void *arg, struct pt_regs *ptregs)
@@ -1444,11 +1445,13 @@ void __devinit
ia64_mca_cpu_init(void *cpu_data)
{
void *pal_vaddr;
+ static int first_time = 1;
- if (smp_processor_id() == 0) {
+ if (first_time) {
void *mca_data;
int cpu;
+ first_time = 0;
mca_data = alloc_bootmem(sizeof(struct ia64_mca_cpu)
* NR_CPUS + KERNEL_STACK_SIZE);
mca_data = (void *)(((unsigned long)mca_data +
@@ -1704,6 +1707,7 @@ ia64_mca_late_init(void)
desc = irq_descp(irq);
desc->status |= IRQ_PER_CPU;
setup_irq(irq, &mca_cpe_irqaction);
+ ia64_cpe_irq = irq;
}
ia64_mca_register_cpev(cpe_vector);
IA64_MCA_DEBUG("%s: CPEI/P setup and enabled.\n", __FUNCTION__);