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__ */ diff -ru ../../REF/2.4.17-ia64-011226/kernel/ksyms.c linux/kernel/ksyms.c --- ../../REF/2.4.17-ia64-011226/kernel/ksyms.c Mon Dec 31 09:02:39 2001 +++ linux/kernel/ksyms.c Fri Jan 4 16:22:11 2002 @@ -556,6 +556,7 @@ /* init task, for moving kthread roots - ought to export a function ?? */ EXPORT_SYMBOL(init_task_union); +EXPORT_SYMBOL(init_tasks); EXPORT_SYMBOL(tasklist_lock); EXPORT_SYMBOL(pidhash);