From: Patrick Gefre <pfg@sgi.com>

Use the pda to keep the num of interrupts



---

 arch/ia64/sn/io/sn2/ml_SN_intr.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff -puN arch/ia64/sn/io/sn2/ml_SN_intr.c~altix-irq-accounting-speedup arch/ia64/sn/io/sn2/ml_SN_intr.c
--- 25/arch/ia64/sn/io/sn2/ml_SN_intr.c~altix-irq-accounting-speedup	2004-02-09 09:37:16.000000000 -0800
+++ 25-akpm/arch/ia64/sn/io/sn2/ml_SN_intr.c	2004-02-09 09:37:16.000000000 -0800
@@ -30,6 +30,7 @@
 #include <asm/sal.h>
 #include <asm/sn/sn_sal.h>
 #include <asm/sn/sn2/shub_mmr.h>
+#include <asm/sn/pda.h>
 
 extern irqpda_t	*irqpdaindr;
 extern cnodeid_t master_node_get(vertex_hdl_t vhdl);
@@ -216,7 +217,6 @@ static cpuid_t intr_cpu_choose_from_node
 {
 	cpuid_t		cpu, best_cpu = CPU_NONE;
 	int		slice, min_count = 1000;
-	irqpda_t	*irqs;
 
 	for (slice = CPUS_PER_NODE - 1; slice >= 0; slice--) {
 		int intrs;
@@ -227,8 +227,7 @@ static cpuid_t intr_cpu_choose_from_node
 		if (!cpu_online(cpu))
 			continue;
 
-		irqs = irqpdaindr;
-		intrs = irqs->num_irq_used;
+		intrs = pdacpu(cpu)->sn_num_irqs;
 
 		if (min_count > intrs) {
 			min_count = intrs;
@@ -243,6 +242,7 @@ static cpuid_t intr_cpu_choose_from_node
 			}
 		}
 	}
+	pdacpu(best_cpu)->sn_num_irqs++;
 	return best_cpu;
 }
 

_