diff -ru ../../REF/2.4.17-ia64-011226/arch/ia64/kernel/irq.c linux/arch/ia64/kernel/irq.c --- ../../REF/2.4.17-ia64-011226/arch/ia64/kernel/irq.c Mon Dec 31 09:02:35 2001 +++ linux/arch/ia64/kernel/irq.c Fri Jan 4 16:17:35 2002 @@ -1010,6 +1010,11 @@ rand_initialize_irq(irq); } + if (new->flags & SA_PERCPU_IRQ) { + desc->status |= IRQ_PER_CPU; + desc->handler = &irq_type_ia64_lsapic; + } + /* * The following block of code has to be executed atomically */ diff -ru ../../REF/2.4.17-ia64-011226/include/asm-ia64/signal.h linux/include/asm-ia64/signal.h --- ../../REF/2.4.17-ia64-011226/include/asm-ia64/signal.h Wed Oct 3 11:32:32 2001 +++ linux/include/asm-ia64/signal.h Fri Jan 4 16:23:52 2002 @@ -111,10 +111,12 @@ * * SA_INTERRUPT is also used by the irq handling routines. * SA_SHIRQ is for shared interrupt support on PCI and EISA. + * SA_PERCPU_IRQ is for processor internal interrupts */ #define SA_PROBE SA_ONESHOT #define SA_SAMPLE_RANDOM SA_RESTART #define SA_SHIRQ 0x04000000 +#define SA_PERCPU_IRQ 0x02000000 #endif /* __KERNEL__ */