Orabug:
23607042
The workaround is to disallow the polling of CQ before
the QP is modified to ERROR. By doing so, the CQ will be updated to
the correct sq_seq during post_wa4074.
Signed-off-by: Wei Lin Guay <wei.lin.guay@oracle.com>
Reviewed-by: Knut Omang <knut.omang@oracle.com>
struct psif_sq_entry *sqe;
u16 head;
int len;
+ struct sif_cq *cq = (sq && sq->cq_idx >= 0) ? get_sif_cq(sdev, sq->cq_idx) : NULL;
+ struct sif_cq_sw *cq_sw = cq ? get_sif_cq_sw(sdev, cq->index) : NULL;
if (qp->flags & SIF_QPF_NO_EVICT)
return 0; /* do-not-evict QPs don't have any SQs */
set_psif_wr__checksum(&sqe->wr, 0);
len--;
}
+ if (cq)
+ set_bit(CQ_POLLING_NOT_ALLOWED, &cq_sw->flags);
+
return 0;
}