forked from Minki/linux
x86: move smp_intr_init away from smpboot_32.c
We move it to apic_32.c, since it's irq related anyway, and only called from that file. Signed-off-by: Glauber Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
eb44d0a2a9
commit
17c9ab1eab
@ -1317,6 +1317,29 @@ void smp_error_interrupt(struct pt_regs *regs)
|
|||||||
irq_exit();
|
irq_exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_SMP
|
||||||
|
void __init smp_intr_init(void)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* IRQ0 must be given a fixed assignment and initialized,
|
||||||
|
* because it's used before the IO-APIC is set up.
|
||||||
|
*/
|
||||||
|
set_intr_gate(FIRST_DEVICE_VECTOR, interrupt[0]);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The reschedule interrupt is a CPU-to-CPU reschedule-helper
|
||||||
|
* IPI, driven by wakeup.
|
||||||
|
*/
|
||||||
|
set_intr_gate(RESCHEDULE_VECTOR, reschedule_interrupt);
|
||||||
|
|
||||||
|
/* IPI for invalidation */
|
||||||
|
set_intr_gate(INVALIDATE_TLB_VECTOR, invalidate_interrupt);
|
||||||
|
|
||||||
|
/* IPI for generic function call */
|
||||||
|
set_intr_gate(CALL_FUNCTION_VECTOR, call_function_interrupt);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialize APIC interrupts
|
* Initialize APIC interrupts
|
||||||
*/
|
*/
|
||||||
|
@ -968,24 +968,3 @@ void __init native_smp_cpus_done(unsigned int max_cpus)
|
|||||||
#endif
|
#endif
|
||||||
zap_low_mappings();
|
zap_low_mappings();
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init smp_intr_init(void)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* IRQ0 must be given a fixed assignment and initialized,
|
|
||||||
* because it's used before the IO-APIC is set up.
|
|
||||||
*/
|
|
||||||
set_intr_gate(FIRST_DEVICE_VECTOR, interrupt[0]);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The reschedule interrupt is a CPU-to-CPU reschedule-helper
|
|
||||||
* IPI, driven by wakeup.
|
|
||||||
*/
|
|
||||||
set_intr_gate(RESCHEDULE_VECTOR, reschedule_interrupt);
|
|
||||||
|
|
||||||
/* IPI for invalidation */
|
|
||||||
set_intr_gate(INVALIDATE_TLB_VECTOR, invalidate_interrupt);
|
|
||||||
|
|
||||||
/* IPI for generic function call */
|
|
||||||
set_intr_gate(CALL_FUNCTION_VECTOR, call_function_interrupt);
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user