x86/entry: Convert APIC interrupts to IDTENTRY_SYSVEC
Convert APIC interrupts to IDTENTRY_SYSVEC: - Implement the C entry point with DEFINE_IDTENTRY_SYSVEC - Emit the ASM stub with DECLARE_IDTENTRY_SYSVEC - Remove the ASM idtentries in 64-bit - Remove the BUILD_INTERRUPT entries in 32-bit - Remove the old prototypes No functional change. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org> Acked-by: Andy Lutomirski <luto@kernel.org> Link: https://lore.kernel.org/r/20200521202119.280728850@linutronix.de
This commit is contained in:
@@ -33,11 +33,6 @@ BUILD_INTERRUPT(kvm_posted_intr_nested_ipi, POSTED_INTR_NESTED_VECTOR)
|
||||
*/
|
||||
#ifdef CONFIG_X86_LOCAL_APIC
|
||||
|
||||
BUILD_INTERRUPT(apic_timer_interrupt,LOCAL_TIMER_VECTOR)
|
||||
BUILD_INTERRUPT(error_interrupt,ERROR_APIC_VECTOR)
|
||||
BUILD_INTERRUPT(spurious_apic_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
|
||||
|
@@ -29,16 +29,12 @@
|
||||
#include <asm/sections.h>
|
||||
|
||||
/* Interrupt handlers registered during init_IRQ */
|
||||
extern asmlinkage void apic_timer_interrupt(void);
|
||||
extern asmlinkage void x86_platform_ipi(void);
|
||||
extern asmlinkage void kvm_posted_intr_ipi(void);
|
||||
extern asmlinkage void kvm_posted_intr_wakeup_ipi(void);
|
||||
extern asmlinkage void kvm_posted_intr_nested_ipi(void);
|
||||
extern asmlinkage void error_interrupt(void);
|
||||
extern asmlinkage void irq_work_interrupt(void);
|
||||
extern asmlinkage void uv_bau_message_intr1(void);
|
||||
|
||||
extern asmlinkage void spurious_apic_interrupt(void);
|
||||
extern asmlinkage void thermal_interrupt(void);
|
||||
extern asmlinkage void reschedule_interrupt(void);
|
||||
|
||||
|
@@ -591,6 +591,14 @@ DECLARE_IDTENTRY_IRQ(X86_TRAP_OTHER, common_interrupt);
|
||||
DECLARE_IDTENTRY_IRQ(X86_TRAP_OTHER, spurious_interrupt);
|
||||
#endif
|
||||
|
||||
/* System vector entry points */
|
||||
#ifdef CONFIG_X86_LOCAL_APIC
|
||||
DECLARE_IDTENTRY_SYSVEC(ERROR_APIC_VECTOR, sysvec_error_interrupt);
|
||||
DECLARE_IDTENTRY_SYSVEC(SPURIOUS_APIC_VECTOR, sysvec_spurious_apic_interrupt);
|
||||
DECLARE_IDTENTRY_SYSVEC(LOCAL_TIMER_VECTOR, sysvec_apic_timer_interrupt);
|
||||
DECLARE_IDTENTRY_SYSVEC(X86_PLATFORM_IPI_VECTOR, sysvec_x86_platform_ipi);
|
||||
#endif
|
||||
|
||||
#undef X86_TRAP_OTHER
|
||||
|
||||
#endif
|
||||
|
@@ -46,7 +46,6 @@ extern void __init init_IRQ(void);
|
||||
void arch_trigger_cpumask_backtrace(const struct cpumask *mask,
|
||||
bool exclude_self);
|
||||
|
||||
extern __visible void smp_x86_platform_ipi(struct pt_regs *regs);
|
||||
#define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace
|
||||
#endif
|
||||
|
||||
|
@@ -40,9 +40,6 @@ asmlinkage void smp_threshold_interrupt(struct pt_regs *regs);
|
||||
asmlinkage void smp_deferred_error_interrupt(struct pt_regs *regs);
|
||||
#endif
|
||||
|
||||
void smp_apic_timer_interrupt(struct pt_regs *regs);
|
||||
void smp_error_interrupt(struct pt_regs *regs);
|
||||
void smp_spurious_apic_interrupt(struct pt_regs *regs);
|
||||
asmlinkage void smp_irq_move_cleanup_interrupt(void);
|
||||
|
||||
#ifdef CONFIG_VMAP_STACK
|
||||
|
Reference in New Issue
Block a user