/* The MSI-X interrupt handler for an SGE response queue for the non-NAPI case (i.e., response queue serviced in hard interrupt).  */
irqreturn_t t3_sge_intr_msix(int irq, void *cookie)
/* The MSI-X interrupt handler for an SGE response queue for the non-NAPI case (i.e., response queue serviced in hard interrupt).  */
irqreturn_t t3_sge_intr_msix(int irq, void *cookie)
{
	struct sge_qset *qs = cookie;
	struct adapter *adap = qs->adap;
	struct sge_rspq *q = &qs->rspq;
	spin_lock(&q->lock);
	if (process_responses(adap, qs, -1) == 0)
		q->unhandled_irqs++;
	t3_write_reg(adap, A_SG_GTS, V_RSPQ(q->cntxt_id) |
		     V_NEWTIMER(q->next_holdoff) | V_NEWINDEX(q->cidx));
	spin_unlock(&q->lock);
	return IRQ_HANDLED;
}