mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 17:30:02 +00:00
![Thomas Gleixner](/assets/img/avatar_default.png)
The platform IPI vector is only installed when the local APIC is enabled. All users of it depend on the local APIC anyway. Make the related code conditional on CONFIG_X86_LOCAL_APIC=y. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Andy Lutomirski <luto@kernel.org> Cc: Borislav Petkov <bp@alien8.de> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Steven Rostedt <rostedt@goodmis.org> Link: http://lkml.kernel.org/r/20170828064957.615286163@linutronix.de Signed-off-by: Ingo Molnar <mingo@kernel.org>
55 lines
1.8 KiB
C
55 lines
1.8 KiB
C
/*
|
|
* This file is designed to contain the BUILD_INTERRUPT specifications for
|
|
* all of the extra named interrupt vectors used by the architecture.
|
|
* Usually this is the Inter Process Interrupts (IPIs)
|
|
*/
|
|
|
|
/*
|
|
* The following vectors are part of the Linux architecture, there
|
|
* is no hardware IRQ pin equivalent for them, they are triggered
|
|
* through the ICC by us (IPIs)
|
|
*/
|
|
#ifdef CONFIG_SMP
|
|
BUILD_INTERRUPT(reschedule_interrupt,RESCHEDULE_VECTOR)
|
|
BUILD_INTERRUPT(call_function_interrupt,CALL_FUNCTION_VECTOR)
|
|
BUILD_INTERRUPT(call_function_single_interrupt,CALL_FUNCTION_SINGLE_VECTOR)
|
|
BUILD_INTERRUPT(irq_move_cleanup_interrupt, IRQ_MOVE_CLEANUP_VECTOR)
|
|
BUILD_INTERRUPT(reboot_interrupt, REBOOT_VECTOR)
|
|
#endif
|
|
|
|
#ifdef CONFIG_HAVE_KVM
|
|
BUILD_INTERRUPT(kvm_posted_intr_ipi, POSTED_INTR_VECTOR)
|
|
BUILD_INTERRUPT(kvm_posted_intr_wakeup_ipi, POSTED_INTR_WAKEUP_VECTOR)
|
|
BUILD_INTERRUPT(kvm_posted_intr_nested_ipi, POSTED_INTR_NESTED_VECTOR)
|
|
#endif
|
|
|
|
/*
|
|
* every pentium local APIC has two 'local interrupts', with a
|
|
* soft-definable vector attached to both interrupts, one of
|
|
* which is a timer interrupt, the other one is error counter
|
|
* overflow. Linux uses the local APIC timer interrupt to get
|
|
* a much simpler SMP time architecture:
|
|
*/
|
|
#ifdef CONFIG_X86_LOCAL_APIC
|
|
|
|
BUILD_INTERRUPT(apic_timer_interrupt,LOCAL_TIMER_VECTOR)
|
|
BUILD_INTERRUPT(error_interrupt,ERROR_APIC_VECTOR)
|
|
BUILD_INTERRUPT(spurious_interrupt,SPURIOUS_APIC_VECTOR)
|
|
BUILD_INTERRUPT(x86_platform_ipi, X86_PLATFORM_IPI_VECTOR)
|
|
|
|
#ifdef CONFIG_IRQ_WORK
|
|
BUILD_INTERRUPT(irq_work_interrupt, IRQ_WORK_VECTOR)
|
|
#endif
|
|
|
|
#ifdef CONFIG_X86_THERMAL_VECTOR
|
|
BUILD_INTERRUPT(thermal_interrupt,THERMAL_APIC_VECTOR)
|
|
#endif
|
|
|
|
#ifdef CONFIG_X86_MCE_THRESHOLD
|
|
BUILD_INTERRUPT(threshold_interrupt,THRESHOLD_APIC_VECTOR)
|
|
#endif
|
|
|
|
#ifdef CONFIG_X86_MCE_AMD
|
|
BUILD_INTERRUPT(deferred_error_interrupt, DEFERRED_ERROR_VECTOR)
|
|
#endif
|
|
#endif
|