We use lazily allocated IRQ regions on PA-RISC.

diff -urpNX build-tools/dontdiff linus-2.5/include/linux/kernel_stat.h parisc-2.5/include/linux/kernel_stat.h
--- linus-2.5/include/linux/kernel_stat.h       Tue Nov  5 11:19:17 2002
+++ parisc-2.5/include/linux/kernel_stat.h      Tue Nov  5 11:15:37 2002
@@ -23,7 +23,9 @@ struct cpu_usage_stat {

struct kernel_stat {
       struct cpu_usage_stat   cpustat;
-#if !defined(CONFIG_ARCH_S390)
+#if defined(CONFIG_PARISC)
+       unsigned int irqs[NR_IRQ_REGS][IRQ_PER_REGION];
+#elif !defined(CONFIG_ARCH_S390)
       unsigned int irqs[NR_IRQS];
#endif
};
@@ -52,7 +54,11 @@ static inline int kstat_irqs (int irq)

       for (i = 0 ; i < NR_CPUS ; i++)
               if (cpu_possible(i))
+#ifdef CONFIG_PARISC
+                       sum += kstat_cpu(i).irqs[IRQ_REGION(irq)][IRQ_OFFSET(irq)];
+#else
                       sum += kstat_cpu(i).irqs[irq];
+#endif

       return sum;
}