saved_tpr = ia64_getreg(_IA64_REG_CR_TPR);
        ia64_srlz_d();
        while (vector != IA64_SPURIOUS_INT_VECTOR) {
-               struct irq_desc *desc;
 -              struct irq_desc *desc = irq_to_desc(vector);
 +              int irq = local_vector_to_irq(vector);
++              struct irq_desc *desc = irq_to_desc(irq);
  
-               desc = irq_desc + irq;
                if (unlikely(IS_LOCAL_TLB_FLUSH(vector))) {
                        smp_local_flush_tlb();
 -                      kstat_incr_irqs_this_cpu(vector, desc);
 -              } else if (unlikely(IS_RESCHEDULE(vector)))
 -                      kstat_incr_irqs_this_cpu(vector, desc);
 -              else {
 -                      int irq = local_vector_to_irq(vector);
 -
 +                      kstat_incr_irqs_this_cpu(irq, desc);
-               } else if (unlikely(IS_RESCHEDULE(vector)))
++              } else if (unlikely(IS_RESCHEDULE(vector))) {
 +                      kstat_incr_irqs_this_cpu(irq, desc);
-               else {
++              } else {
                        ia64_setreg(_IA64_REG_CR_TPR, vector);
                        ia64_srlz_d();
  
          * Perform normal interrupt style processing
          */
        while (vector != IA64_SPURIOUS_INT_VECTOR) {
-               struct irq_desc *desc;
 -              struct irq_desc *desc = irq_to_desc(vector);
 +              int irq = local_vector_to_irq(vector);
-               desc = irq_desc + irq;
++              struct irq_desc *desc = irq_to_desc(irq);
  
                if (unlikely(IS_LOCAL_TLB_FLUSH(vector))) {
                        smp_local_flush_tlb();
 -                      kstat_incr_irqs_this_cpu(vector, desc);
 -              } else if (unlikely(IS_RESCHEDULE(vector)))
 -                      kstat_incr_irqs_this_cpu(vector, desc);
 -              else {
 +                      kstat_incr_irqs_this_cpu(irq, desc);
-               } else if (unlikely(IS_RESCHEDULE(vector)))
++              } else if (unlikely(IS_RESCHEDULE(vector))) {
 +                      kstat_incr_irqs_this_cpu(irq, desc);
-               else {
++              } else {
                        struct pt_regs *old_regs = set_irq_regs(NULL);
 -                      int irq = local_vector_to_irq(vector);
  
                        ia64_setreg(_IA64_REG_CR_TPR, vector);
                        ia64_srlz_d();