handle_IRQ_event is not declared asmlinkage in linux/irq.h, and making it so may break other architectures. So make he declaration o this function be per-architecture. --- arch/i386/kernel/irq.c | 0 include/asm-alpha/irq.h | 3 +++ include/asm-arm/irq.h | 4 ++++ include/asm-arm26/irq.h | 2 ++ include/asm-cris/irq.h | 4 ++++ include/asm-h8300/irq.h | 4 ++++ include/asm-i386/irq.h | 5 +++++ include/asm-ia64/irq.h | 4 ++++ include/asm-m68k/irq.h | 4 ++++ include/asm-m68knommu/irq.h | 4 ++++ include/asm-mips/irq.h | 3 +++ include/asm-parisc/irq.h | 3 +++ include/asm-ppc/irq.h | 4 ++++ include/asm-ppc64/irq.h | 4 ++++ include/asm-s390/irq.h | 4 ++++ include/asm-sh/irq.h | 4 ++++ include/asm-sparc/irq.h | 4 ++++ include/asm-sparc64/irq.h | 4 ++++ include/asm-um/irq.h | 5 +++++ include/asm-v850/irq.h | 4 ++++ include/asm-x86_64/irq.h | 4 ++++ include/linux/irq.h | 1 - 22 files changed, 77 insertions(+), 1 deletion(-) diff -puN include/linux/irq.h~ia32-4k-stacks-build-fix include/linux/irq.h --- 25/include/linux/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/linux/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -71,7 +71,6 @@ extern irq_desc_t irq_desc [NR_IRQS]; #include /* the arch dependent stuff */ -extern int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); extern int setup_irq(unsigned int , struct irqaction * ); extern hw_irq_controller no_irq_type; /* needed in every arch ? */ diff -puN arch/i386/kernel/irq.c~ia32-4k-stacks-build-fix arch/i386/kernel/irq.c diff -puN include/asm-alpha/irq.h~ia32-4k-stacks-build-fix include/asm-alpha/irq.h --- 25/include/asm-alpha/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-alpha/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -93,5 +93,8 @@ extern void enable_irq(unsigned int); struct pt_regs; extern void (*perf_irq)(unsigned long, struct pt_regs *); +struct irqaction; +int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); + #endif /* _ALPHA_IRQ_H */ diff -puN include/asm-arm26/irq.h~ia32-4k-stacks-build-fix include/asm-arm26/irq.h --- 25/include/asm-arm26/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-arm26/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -45,6 +45,8 @@ extern void enable_irq(unsigned int); int set_irq_type(unsigned int irq, unsigned int type); int setup_irq(unsigned int, struct irqaction *); +struct pt_regs; +int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); #endif diff -puN include/asm-arm/irq.h~ia32-4k-stacks-build-fix include/asm-arm/irq.h --- 25/include/asm-arm/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-arm/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -44,5 +44,9 @@ void disable_irq_wake(unsigned int irq); void enable_irq_wake(unsigned int irq); int setup_irq(unsigned int, struct irqaction *); +struct irqaction; +struct pt_regs; +int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); + #endif diff -puN include/asm-cris/irq.h~ia32-4k-stacks-build-fix include/asm-cris/irq.h --- 25/include/asm-cris/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-cris/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -14,6 +14,10 @@ extern void enable_irq(unsigned int); #define disable_irq_nosync disable_irq #define enable_irq_nosync enable_irq +struct irqaction; +struct pt_regs; +int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); + #endif /* _ASM_IRQ_H */ diff -puN include/asm-h8300/irq.h~ia32-4k-stacks-build-fix include/asm-h8300/irq.h --- 25/include/asm-h8300/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-h8300/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -48,4 +48,8 @@ extern void disable_irq(unsigned int); #define enable_irq_nosync(x) enable_irq(x) #define disable_irq_nosync(x) disable_irq(x) +struct irqaction; +struct pt_regs; +int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); + #endif /* _H8300_IRQ_H_ */ diff -puN include/asm-i386/irq.h~ia32-4k-stacks-build-fix include/asm-i386/irq.h --- 25/include/asm-i386/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-i386/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -50,4 +50,9 @@ extern void irq_ctx_init(int cpu); #define irq_ctx_init(cpu) do { ; } while (0) #endif +struct irqaction; +struct pt_regs; +asmlinkage int handle_IRQ_event(unsigned int, struct pt_regs *, + struct irqaction *); + #endif /* _ASM_IRQ_H */ diff -puN include/asm-ia64/irq.h~ia32-4k-stacks-build-fix include/asm-ia64/irq.h --- 25/include/asm-ia64/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-ia64/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -29,4 +29,8 @@ extern void disable_irq_nosync (unsigned extern void enable_irq (unsigned int); extern void set_irq_affinity_info (unsigned int irq, int dest, int redir); +struct irqaction; +struct pt_regs; +int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); + #endif /* _ASM_IA64_IRQ_H */ diff -puN include/asm-m68k/irq.h~ia32-4k-stacks-build-fix include/asm-m68k/irq.h --- 25/include/asm-m68k/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-m68k/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -124,4 +124,8 @@ extern volatile unsigned int num_spuriou */ extern irq_node_t *new_irq_node(void); +struct irqaction; +struct pt_regs; +int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); + #endif /* _M68K_IRQ_H_ */ diff -puN include/asm-m68knommu/irq.h~ia32-4k-stacks-build-fix include/asm-m68knommu/irq.h --- 25/include/asm-m68knommu/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-m68knommu/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -121,4 +121,8 @@ extern irq_node_t *new_irq_node(void); #define enable_irq_nosync(x) enable_irq(x) #define disable_irq_nosync(x) disable_irq(x) +struct irqaction; +struct pt_regs; +int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); + #endif /* _M68K_IRQ_H_ */ diff -puN include/asm-mips/irq.h~ia32-4k-stacks-build-fix include/asm-mips/irq.h --- 25/include/asm-mips/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-mips/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -31,4 +31,7 @@ extern asmlinkage unsigned int do_IRQ(in extern void init_generic_irq(void); +struct irqaction; +int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); + #endif /* _ASM_IRQ_H */ diff -puN include/asm-parisc/irq.h~ia32-4k-stacks-build-fix include/asm-parisc/irq.h --- 25/include/asm-parisc/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-parisc/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -96,4 +96,7 @@ extern unsigned long txn_alloc_addr(int) /* soft power switch support (power.c) */ extern struct tasklet_struct power_tasklet; +struct irqaction; +int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); + #endif /* _ASM_PARISC_IRQ_H */ diff -puN include/asm-ppc64/irq.h~ia32-4k-stacks-build-fix include/asm-ppc64/irq.h --- 25/include/asm-ppc64/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-ppc64/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -48,5 +48,9 @@ static __inline__ int irq_canonicalize(i #define NR_MASK_WORDS ((NR_IRQS + 63) / 64) +struct irqaction; +struct pt_regs; +int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); + #endif /* _ASM_IRQ_H */ #endif /* __KERNEL__ */ diff -puN include/asm-ppc/irq.h~ia32-4k-stacks-build-fix include/asm-ppc/irq.h --- 25/include/asm-ppc/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-ppc/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -211,5 +211,9 @@ extern unsigned long ppc_cached_irq_mask extern unsigned long ppc_lost_interrupts[NR_MASK_WORDS]; extern atomic_t ppc_n_lost_interrupts; +struct irqaction; +struct pt_regs; +int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); + #endif /* _ASM_IRQ_H */ #endif /* __KERNEL__ */ diff -puN include/asm-s390/irq.h~ia32-4k-stacks-build-fix include/asm-s390/irq.h --- 25/include/asm-s390/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-s390/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -21,6 +21,10 @@ enum interruption_class { #define touch_nmi_watchdog() do { } while(0) +struct irqaction; +struct pt_regs; +int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); + #endif /* __KERNEL__ */ #endif diff -puN include/asm-sh/irq.h~ia32-4k-stacks-build-fix include/asm-sh/irq.h --- 25/include/asm-sh/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-sh/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -324,4 +324,8 @@ static inline int generic_irq_demux(int #define irq_canonicalize(irq) (irq) #define irq_demux(irq) __irq_demux(sh_mv.mv_irq_demux(irq)) +struct irqaction; +struct pt_regs; +int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); + #endif /* __ASM_SH_IRQ_H */ diff -puN include/asm-sparc64/irq.h~ia32-4k-stacks-build-fix include/asm-sparc64/irq.h --- 25/include/asm-sparc64/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-sparc64/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -150,4 +150,8 @@ static __inline__ unsigned long get_soft return retval; } +struct irqaction; +struct pt_regs; +int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); + #endif diff -puN include/asm-sparc/irq.h~ia32-4k-stacks-build-fix include/asm-sparc/irq.h --- 25/include/asm-sparc/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-sparc/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -184,4 +184,8 @@ extern struct sun4m_intregs *sun4m_inter #define SUN4M_INT_SBUS(x) (1 << (x+7)) #define SUN4M_INT_VME(x) (1 << (x)) +struct irqaction; +struct pt_regs; +int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); + #endif diff -puN include/asm-um/irq.h~ia32-4k-stacks-build-fix include/asm-um/irq.h --- 25/include/asm-um/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-um/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -32,4 +32,9 @@ extern int um_request_irq(unsigned int i void (*handler)(int, void *, struct pt_regs *), unsigned long irqflags, const char * devname, void *dev_id); + +struct irqaction; +struct pt_regs; +int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); + #endif diff -puN include/asm-v850/irq.h~ia32-4k-stacks-build-fix include/asm-v850/irq.h --- 25/include/asm-v850/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-v850/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -65,4 +65,8 @@ extern void disable_irq_nosync (unsigned #endif /* !__ASSEMBLY__ */ +struct irqaction; +struct pt_regs; +int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); + #endif /* __V850_IRQ_H__ */ diff -puN include/asm-x86_64/irq.h~ia32-4k-stacks-build-fix include/asm-x86_64/irq.h --- 25/include/asm-x86_64/irq.h~ia32-4k-stacks-build-fix 2004-03-01 19:33:39.000000000 -0800 +++ 25-akpm/include/asm-x86_64/irq.h 2004-03-01 19:33:39.000000000 -0800 @@ -53,4 +53,8 @@ extern int can_request_irq(unsigned int, #define ARCH_HAS_NMI_WATCHDOG /* See include/linux/nmi.h */ #endif +struct irqaction; +struct pt_regs; +int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); + #endif /* _ASM_IRQ_H */ _