forked from Minki/linux
90a2282e23
First of all there is no point in looking up the irq descriptor again, but we also need the descriptor for the final cleanup race fix in the next patch. Make that change seperate. No functional difference. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Tested-by: Borislav Petkov <bp@alien8.de> Tested-by: Joe Lawrence <joe.lawrence@stratus.com> Cc: Jiang Liu <jiang.liu@linux.intel.com> Cc: Jeremiah Mahler <jmmahler@gmail.com> Cc: andy.shevchenko@gmail.com Cc: Guenter Roeck <linux@roeck-us.net> Cc: stable@vger.kernel.org #4.3+ Link: http://lkml.kernel.org/r/20151231160107.125211743@linutronix.de Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
58 lines
1.3 KiB
C
58 lines
1.3 KiB
C
#ifndef _ASM_X86_IRQ_H
|
|
#define _ASM_X86_IRQ_H
|
|
/*
|
|
* (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar
|
|
*
|
|
* IRQ/IPI changes taken from work by Thomas Radke
|
|
* <tomsoft@informatik.tu-chemnitz.de>
|
|
*/
|
|
|
|
#include <asm/apicdef.h>
|
|
#include <asm/irq_vectors.h>
|
|
|
|
static inline int irq_canonicalize(int irq)
|
|
{
|
|
return ((irq == 2) ? 9 : irq);
|
|
}
|
|
|
|
#ifdef CONFIG_X86_32
|
|
extern void irq_ctx_init(int cpu);
|
|
#else
|
|
# define irq_ctx_init(cpu) do { } while (0)
|
|
#endif
|
|
|
|
#define __ARCH_HAS_DO_SOFTIRQ
|
|
|
|
struct irq_desc;
|
|
|
|
#ifdef CONFIG_HOTPLUG_CPU
|
|
#include <linux/cpumask.h>
|
|
extern int check_irq_vectors_for_cpu_disable(void);
|
|
extern void fixup_irqs(void);
|
|
extern void irq_force_complete_move(struct irq_desc *desc);
|
|
#endif
|
|
|
|
#ifdef CONFIG_HAVE_KVM
|
|
extern void kvm_set_posted_intr_wakeup_handler(void (*handler)(void));
|
|
#endif
|
|
|
|
extern void (*x86_platform_ipi_callback)(void);
|
|
extern void native_init_IRQ(void);
|
|
|
|
extern bool handle_irq(struct irq_desc *desc, struct pt_regs *regs);
|
|
|
|
extern __visible unsigned int do_IRQ(struct pt_regs *regs);
|
|
|
|
/* Interrupt vector management */
|
|
extern DECLARE_BITMAP(used_vectors, NR_VECTORS);
|
|
extern int vector_used_by_percpu_irq(unsigned int vector);
|
|
|
|
extern void init_ISA_irqs(void);
|
|
|
|
#ifdef CONFIG_X86_LOCAL_APIC
|
|
void arch_trigger_all_cpu_backtrace(bool);
|
|
#define arch_trigger_all_cpu_backtrace arch_trigger_all_cpu_backtrace
|
|
#endif
|
|
|
|
#endif /* _ASM_X86_IRQ_H */
|