diff options
author | Jes Sorensen <jes@sgi.com> | 2009-03-27 11:55:41 -0400 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2009-03-27 12:50:46 -0400 |
commit | 66f3e6afa8e48486c4dd535d616fbfe04569fbd4 (patch) | |
tree | 1ca1f8835a095c8f27e0c17b8d254f09d679bdfa | |
parent | be0ea69674ed95e1e98cb3687a241badc756d228 (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>
-rw-r--r-- | arch/ia64/kernel/irq_ia64.c | 25 |
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(); |