Skip to content

Commit c75f2aa

Browse files
committed
[IA64] Cannot use register_percpu_irq() from ia64_mca_init()
This is called before early_irq_init() which will clobber any registrations made too early. Move the calls to ia64_mca_late_init(). Signed-off-by: Tony Luck <[email protected]>
1 parent 4de0a75 commit c75f2aa

File tree

1 file changed

+19
-19
lines changed

1 file changed

+19
-19
lines changed

arch/ia64/kernel/mca.c

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2055,25 +2055,6 @@ ia64_mca_init(void)
20552055

20562056
IA64_MCA_DEBUG("%s: registered OS INIT handler with SAL\n", __func__);
20572057

2058-
/*
2059-
* Configure the CMCI/P vector and handler. Interrupts for CMC are
2060-
* per-processor, so AP CMC interrupts are setup in smp_callin() (smpboot.c).
2061-
*/
2062-
register_percpu_irq(IA64_CMC_VECTOR, &cmci_irqaction);
2063-
register_percpu_irq(IA64_CMCP_VECTOR, &cmcp_irqaction);
2064-
ia64_mca_cmc_vector_setup(); /* Setup vector on BSP */
2065-
2066-
/* Setup the MCA rendezvous interrupt vector */
2067-
register_percpu_irq(IA64_MCA_RENDEZ_VECTOR, &mca_rdzv_irqaction);
2068-
2069-
/* Setup the MCA wakeup interrupt vector */
2070-
register_percpu_irq(IA64_MCA_WAKEUP_VECTOR, &mca_wkup_irqaction);
2071-
2072-
#ifdef CONFIG_ACPI
2073-
/* Setup the CPEI/P handler */
2074-
register_percpu_irq(IA64_CPEP_VECTOR, &mca_cpep_irqaction);
2075-
#endif
2076-
20772058
/* Initialize the areas set aside by the OS to buffer the
20782059
* platform/processor error states for MCA/INIT/CMC
20792060
* handling.
@@ -2103,6 +2084,25 @@ ia64_mca_late_init(void)
21032084
if (!mca_init)
21042085
return 0;
21052086

2087+
/*
2088+
* Configure the CMCI/P vector and handler. Interrupts for CMC are
2089+
* per-processor, so AP CMC interrupts are setup in smp_callin() (smpboot.c).
2090+
*/
2091+
register_percpu_irq(IA64_CMC_VECTOR, &cmci_irqaction);
2092+
register_percpu_irq(IA64_CMCP_VECTOR, &cmcp_irqaction);
2093+
ia64_mca_cmc_vector_setup(); /* Setup vector on BSP */
2094+
2095+
/* Setup the MCA rendezvous interrupt vector */
2096+
register_percpu_irq(IA64_MCA_RENDEZ_VECTOR, &mca_rdzv_irqaction);
2097+
2098+
/* Setup the MCA wakeup interrupt vector */
2099+
register_percpu_irq(IA64_MCA_WAKEUP_VECTOR, &mca_wkup_irqaction);
2100+
2101+
#ifdef CONFIG_ACPI
2102+
/* Setup the CPEI/P handler */
2103+
register_percpu_irq(IA64_CPEP_VECTOR, &mca_cpep_irqaction);
2104+
#endif
2105+
21062106
register_hotcpu_notifier(&mca_cpu_notifier);
21072107

21082108
/* Setup the CMCI/P vector and handler */

0 commit comments

Comments
 (0)