* [patch] 2.4.25-pre8 mca.c - sync with 2.6.2-rc2
@ 2004-02-06 6:20 Keith Owens
0 siblings, 0 replies; only message in thread
From: Keith Owens @ 2004-02-06 6:20 UTC (permalink / raw)
To: linux-ia64
Minimize the divergence between 2.4 and 2.6 in mca.c. Mainly white
space, comment and #ifdef changes. Plus a test for zero return from
ia64_sal_get_state_info_size().
Index: 25-pre8.3/arch/ia64/kernel/mca.c
--- 25-pre8.3/arch/ia64/kernel/mca.c Thu, 05 Feb 2004 10:53:36 +1100 kaos (linux-2.4/s/c/5_mca.c 1.1.3.2.3.1.1.1.1.2.1.1.1.1.1.1.1.3 644)
+++ 25-pre8.5/arch/ia64/kernel/mca.c Fri, 06 Feb 2004 17:15:40 +1100 kaos (linux-2.4/s/c/5_mca.c 1.1.3.2.3.1.1.1.1.2.1.1.1.1.1.1.1.5 644)
@@ -6,7 +6,7 @@
* Copyright (C) 2003 Hewlett-Packard Co
* David Mosberger-Tang <davidm@hpl.hp.com>
*
- * Copyright (C) 2002 Dell Computer Corporation
+ * Copyright (C) 2002 Dell Inc.
* Copyright (C) Matt Domsch (Matt_Domsch@dell.com)
*
* Copyright (C) 2002 Intel
@@ -185,6 +185,9 @@ ia64_log_init(int sal_info_type)
// SAL will tell us the maximum size of any error record of this type
max_size = ia64_sal_get_state_info_size(sal_info_type);
+ if (!max_size)
+ /* alloc_bootmem() doesn't like zero-sized allocations! */
+ return;
// set up OS data structures to hold error info
IA64_LOG_ALLOCATE(sal_info_type, max_size);
@@ -474,7 +477,9 @@ init_handler_platform (pal_min_state_are
* ia64_mca_check_errors
*
* External entry to check for error records which may have been posted by SAL
- * for a prior failure.
+ * for a prior failure which resulted in a machine shutdown before an the
+ * error could be logged. This function must be called after the filesystem
+ * is initialized.
*
* Inputs : None
*
@@ -492,6 +497,7 @@ ia64_mca_check_errors (void)
return 0;
}
+#ifdef CONFIG_ACPI
/*
* ia64_mca_register_cpev
*
@@ -519,6 +525,7 @@ ia64_mca_register_cpev (int cpev)
IA64_MCA_DEBUG("%s: corrected platform error "
"vector %#x setup and enabled\n", __FUNCTION__, cpev);
}
+#endif /* CONFIG_ACPI */
#endif /* PLATFORM_MCA_HANDLERS */
@@ -746,7 +753,6 @@ ia64_mca_rendez_int_handler(int rendez_i
local_irq_restore(flags);
}
-
/*
* ia64_mca_wakeup_int_handler
*
@@ -943,11 +949,11 @@ ia64_mca_cmc_int_caller(int cpe_irq, voi
ia64_mca_cmc_int_handler(cpe_irq, arg, ptregs);
for (++cpuid ; cpuid < NR_CPUS && !cpu_online(cpuid) ; cpuid++);
-
+
if (cpuid < NR_CPUS) {
platform_send_ipi(cpuid, IA64_CMCP_VECTOR, IA64_IPI_DM_INT, 0);
} else {
- /* If no log recored, switch out of polling mode */
+ /* If no log record, switch out of polling mode */
if (start_count = IA64_LOG_COUNT(SAL_INFO_TYPE_CMC)) {
printk(KERN_WARNING "Returning to interrupt driven CMC handler\n");
@@ -1109,6 +1115,7 @@ static struct irqaction mca_wkup_irqacti
.name = "mca_wkup"
};
+#ifdef CONFIG_ACPI
static struct irqaction mca_cpe_irqaction = {
.handler = ia64_mca_cpe_int_handler,
.flags = SA_INTERRUPT,
@@ -1120,6 +1127,7 @@ static struct irqaction mca_cpep_irqacti
.flags = SA_INTERRUPT,
.name = "cpe_poll"
};
+#endif /* CONFIG_ACPI */
/*
* ia64_mca_init
@@ -1264,6 +1272,7 @@ ia64_mca_init(void)
/* Setup the MCA wakeup interrupt vector */
register_percpu_irq(IA64_MCA_WAKEUP_VECTOR, &mca_wkup_irqaction);
+#ifdef CONFIG_ACPI
/* Setup the CPE interrupt vector */
{
irq_desc_t *desc;
@@ -1281,6 +1290,7 @@ ia64_mca_init(void)
ia64_mca_register_cpev(cpev);
}
}
+#endif
/* Initialize the areas set aside by the OS to buffer the
* platform/processor error states for MCA/INIT/CMC
@@ -1316,11 +1326,13 @@ ia64_mca_late_init(void)
init_timer(&cpe_poll_timer);
cpe_poll_timer.function = ia64_mca_cpe_poll;
+#ifdef CONFIG_ACPI
/* If platform doesn't support CPEI, get the timer going. */
if (acpi_request_vector(ACPI_INTERRUPT_CPEI) < 0 && cpe_poll_enabled) {
register_percpu_irq(IA64_CPEP_VECTOR, &mca_cpep_irqaction);
ia64_mca_cpe_poll(0UL);
}
+#endif
return 0;
}
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2004-02-06 6:20 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-02-06 6:20 [patch] 2.4.25-pre8 mca.c - sync with 2.6.2-rc2 Keith Owens
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox