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 <asm/hw_irq.h> /* 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 */

_