|
@@ -3115,9 +3115,7 @@ static irqreturn_t qib_7322intr(int irq, void *data)
|
|
|
goto bail;
|
|
|
}
|
|
|
|
|
|
- qib_stats.sps_ints++;
|
|
|
- if (dd->int_counter != (u32) -1)
|
|
|
- dd->int_counter++;
|
|
|
+ this_cpu_inc(*dd->int_counter);
|
|
|
|
|
|
/* handle "errors" of various kinds first, device ahead of port */
|
|
|
if (unlikely(istat & (~QIB_I_BITSEXTANT | QIB_I_GPIO |
|
|
@@ -3186,9 +3184,7 @@ static irqreturn_t qib_7322pintr(int irq, void *data)
|
|
|
*/
|
|
|
return IRQ_HANDLED;
|
|
|
|
|
|
- qib_stats.sps_ints++;
|
|
|
- if (dd->int_counter != (u32) -1)
|
|
|
- dd->int_counter++;
|
|
|
+ this_cpu_inc(*dd->int_counter);
|
|
|
|
|
|
/* Clear the interrupt bit we expect to be set. */
|
|
|
qib_write_kreg(dd, kr_intclear, ((1ULL << QIB_I_RCVAVAIL_LSB) |
|
|
@@ -3215,9 +3211,7 @@ static irqreturn_t qib_7322bufavail(int irq, void *data)
|
|
|
*/
|
|
|
return IRQ_HANDLED;
|
|
|
|
|
|
- qib_stats.sps_ints++;
|
|
|
- if (dd->int_counter != (u32) -1)
|
|
|
- dd->int_counter++;
|
|
|
+ this_cpu_inc(*dd->int_counter);
|
|
|
|
|
|
/* Clear the interrupt bit we expect to be set. */
|
|
|
qib_write_kreg(dd, kr_intclear, QIB_I_SPIOBUFAVAIL);
|
|
@@ -3248,9 +3242,7 @@ static irqreturn_t sdma_intr(int irq, void *data)
|
|
|
*/
|
|
|
return IRQ_HANDLED;
|
|
|
|
|
|
- qib_stats.sps_ints++;
|
|
|
- if (dd->int_counter != (u32) -1)
|
|
|
- dd->int_counter++;
|
|
|
+ this_cpu_inc(*dd->int_counter);
|
|
|
|
|
|
/* Clear the interrupt bit we expect to be set. */
|
|
|
qib_write_kreg(dd, kr_intclear, ppd->hw_pidx ?
|
|
@@ -3277,9 +3269,7 @@ static irqreturn_t sdma_idle_intr(int irq, void *data)
|
|
|
*/
|
|
|
return IRQ_HANDLED;
|
|
|
|
|
|
- qib_stats.sps_ints++;
|
|
|
- if (dd->int_counter != (u32) -1)
|
|
|
- dd->int_counter++;
|
|
|
+ this_cpu_inc(*dd->int_counter);
|
|
|
|
|
|
/* Clear the interrupt bit we expect to be set. */
|
|
|
qib_write_kreg(dd, kr_intclear, ppd->hw_pidx ?
|
|
@@ -3306,9 +3296,7 @@ static irqreturn_t sdma_progress_intr(int irq, void *data)
|
|
|
*/
|
|
|
return IRQ_HANDLED;
|
|
|
|
|
|
- qib_stats.sps_ints++;
|
|
|
- if (dd->int_counter != (u32) -1)
|
|
|
- dd->int_counter++;
|
|
|
+ this_cpu_inc(*dd->int_counter);
|
|
|
|
|
|
/* Clear the interrupt bit we expect to be set. */
|
|
|
qib_write_kreg(dd, kr_intclear, ppd->hw_pidx ?
|
|
@@ -3336,9 +3324,7 @@ static irqreturn_t sdma_cleanup_intr(int irq, void *data)
|
|
|
*/
|
|
|
return IRQ_HANDLED;
|
|
|
|
|
|
- qib_stats.sps_ints++;
|
|
|
- if (dd->int_counter != (u32) -1)
|
|
|
- dd->int_counter++;
|
|
|
+ this_cpu_inc(*dd->int_counter);
|
|
|
|
|
|
/* Clear the interrupt bit we expect to be set. */
|
|
|
qib_write_kreg(dd, kr_intclear, ppd->hw_pidx ?
|
|
@@ -3723,7 +3709,8 @@ static int qib_do_7322_reset(struct qib_devdata *dd)
|
|
|
dd->pport->cpspec->ibsymdelta = 0;
|
|
|
dd->pport->cpspec->iblnkerrdelta = 0;
|
|
|
dd->pport->cpspec->ibmalfdelta = 0;
|
|
|
- dd->int_counter = 0; /* so we check interrupts work again */
|
|
|
+ /* so we check interrupts work again */
|
|
|
+ dd->z_int_counter = qib_int_counter(dd);
|
|
|
|
|
|
/*
|
|
|
* Keep chip from being accessed until we are ready. Use
|