aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
authorJes Sorensen <jes@sgi.com>2009-03-27 11:55:41 -0400
committerTony Luck <tony.luck@intel.com>2009-03-27 12:50:46 -0400
commit66f3e6afa8e48486c4dd535d616fbfe04569fbd4 (patch)
tree1ca1f8835a095c8f27e0c17b8d254f09d679bdfa /arch/ia64
parentbe0ea69674ed95e1e98cb3687a241badc756d228 (diff)
[IA64] Fix kstat_this_cpu build breakage
arch/ia64/kernel/irq_ia64.c: In function 'ia64_handle_irq': arch/ia64/kernel/irq_ia64.c:498: error: 'struct kernel_stat' has no member named 'irqs' arch/ia64/kernel/irq_ia64.c:500: error: 'struct kernel_stat' has no member named 'irqs' arch/ia64/kernel/irq_ia64.c: In function 'ia64_process_pending_intr': arch/ia64/kernel/irq_ia64.c:556: error: 'struct kernel_stat' has no member named 'irqs' arch/ia64/kernel/irq_ia64.c:558: error: 'struct kernel_stat' has no member named 'irqs' Fix build breakage due to recent kstat_this_cpu changes in: d7e51e66899f95dabc89b4d4c6674a6e50fa37fc sparseirq: make some func to be used with genirq Signed-off-by: Jes Sorensen <jes@sgi.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64')
-rw-r--r--arch/ia64/kernel/irq_ia64.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c
index 28d3d483db92..977a6ef13320 100644
--- a/arch/ia64/kernel/irq_ia64.c
+++ b/arch/ia64/kernel/irq_ia64.c
@@ -493,14 +493,16 @@ ia64_handle_irq (ia64_vector vector, struct pt_regs *regs)
493 saved_tpr = ia64_getreg(_IA64_REG_CR_TPR); 493 saved_tpr = ia64_getreg(_IA64_REG_CR_TPR);
494 ia64_srlz_d(); 494 ia64_srlz_d();
495 while (vector != IA64_SPURIOUS_INT_VECTOR) { 495 while (vector != IA64_SPURIOUS_INT_VECTOR) {
496 struct irq_desc *desc;
497 int irq = local_vector_to_irq(vector);
498
499 desc = irq_desc + irq;
496 if (unlikely(IS_LOCAL_TLB_FLUSH(vector))) { 500 if (unlikely(IS_LOCAL_TLB_FLUSH(vector))) {
497 smp_local_flush_tlb(); 501 smp_local_flush_tlb();
498 kstat_this_cpu.irqs[vector]++; 502 kstat_incr_irqs_this_cpu(irq, desc);
499 } else if (unlikely(IS_RESCHEDULE(vector))) 503 } else if (unlikely(IS_RESCHEDULE(vector)))
500 kstat_this_cpu.irqs[vector]++; 504 kstat_incr_irqs_this_cpu(irq, desc);
501 else { 505 else {
502 int irq = local_vector_to_irq(vector);
503
504 ia64_setreg(_IA64_REG_CR_TPR, vector); 506 ia64_setreg(_IA64_REG_CR_TPR, vector);
505 ia64_srlz_d(); 507 ia64_srlz_d();
506 508
@@ -543,22 +545,25 @@ void ia64_process_pending_intr(void)
543 545
544 vector = ia64_get_ivr(); 546 vector = ia64_get_ivr();
545 547
546 irq_enter(); 548 irq_enter();
547 saved_tpr = ia64_getreg(_IA64_REG_CR_TPR); 549 saved_tpr = ia64_getreg(_IA64_REG_CR_TPR);
548 ia64_srlz_d(); 550 ia64_srlz_d();
549 551
550 /* 552 /*
551 * Perform normal interrupt style processing 553 * Perform normal interrupt style processing
552 */ 554 */
553 while (vector != IA64_SPURIOUS_INT_VECTOR) { 555 while (vector != IA64_SPURIOUS_INT_VECTOR) {
556 struct irq_desc *desc;
557 int irq = local_vector_to_irq(vector);
558 desc = irq_desc + irq;
559
554 if (unlikely(IS_LOCAL_TLB_FLUSH(vector))) { 560 if (unlikely(IS_LOCAL_TLB_FLUSH(vector))) {
555 smp_local_flush_tlb(); 561 smp_local_flush_tlb();
556 kstat_this_cpu.irqs[vector]++; 562 kstat_incr_irqs_this_cpu(irq, desc);
557 } else if (unlikely(IS_RESCHEDULE(vector))) 563 } else if (unlikely(IS_RESCHEDULE(vector)))
558 kstat_this_cpu.irqs[vector]++; 564 kstat_incr_irqs_this_cpu(irq, desc);
559 else { 565 else {
560 struct pt_regs *old_regs = set_irq_regs(NULL); 566 struct pt_regs *old_regs = set_irq_regs(NULL);
561 int irq = local_vector_to_irq(vector);
562 567
563 ia64_setreg(_IA64_REG_CR_TPR, vector); 568 ia64_setreg(_IA64_REG_CR_TPR, vector);
564 ia64_srlz_d(); 569 ia64_srlz_d();