.. | .. |
---|
11 | 11 | #include <asm/apicdef.h> |
---|
12 | 12 | #include <asm/irq_vectors.h> |
---|
13 | 13 | |
---|
| 14 | +/* |
---|
| 15 | + * The irq entry code is in the noinstr section and the start/end of |
---|
| 16 | + * __irqentry_text is emitted via labels. Make the build fail if |
---|
| 17 | + * something moves a C function into the __irq_entry section. |
---|
| 18 | + */ |
---|
| 19 | +#define __irq_entry __invalid_section |
---|
| 20 | + |
---|
14 | 21 | static inline int irq_canonicalize(int irq) |
---|
15 | 22 | { |
---|
16 | 23 | return ((irq == 2) ? 9 : irq); |
---|
17 | 24 | } |
---|
18 | 25 | |
---|
19 | | -#ifdef CONFIG_X86_32 |
---|
20 | | -extern void irq_ctx_init(int cpu); |
---|
21 | | -#else |
---|
22 | | -# define irq_ctx_init(cpu) do { } while (0) |
---|
23 | | -#endif |
---|
| 26 | +extern int irq_init_percpu_irqstack(unsigned int cpu); |
---|
24 | 27 | |
---|
25 | 28 | #define __ARCH_HAS_DO_SOFTIRQ |
---|
26 | 29 | |
---|
.. | .. |
---|
35 | 38 | extern void (*x86_platform_ipi_callback)(void); |
---|
36 | 39 | extern void native_init_IRQ(void); |
---|
37 | 40 | |
---|
38 | | -extern bool handle_irq(struct irq_desc *desc, struct pt_regs *regs); |
---|
| 41 | +extern void __handle_irq(struct irq_desc *desc, struct pt_regs *regs); |
---|
39 | 42 | |
---|
40 | | -extern __visible unsigned int do_IRQ(struct pt_regs *regs); |
---|
| 43 | +extern __visible void do_IRQ(struct pt_regs *regs, unsigned long vector); |
---|
41 | 44 | |
---|
42 | 45 | extern void init_ISA_irqs(void); |
---|
| 46 | + |
---|
| 47 | +extern void __init init_IRQ(void); |
---|
43 | 48 | |
---|
44 | 49 | #ifdef CONFIG_X86_LOCAL_APIC |
---|
45 | 50 | void arch_trigger_cpumask_backtrace(const struct cpumask *mask, |
---|
46 | 51 | bool exclude_self); |
---|
| 52 | + |
---|
47 | 53 | #define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace |
---|
48 | 54 | #endif |
---|
49 | 55 | |
---|