mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 16:41:58 +00:00
RDMA/cxgb3: Don't complete flushed send work requests twice
When the SQ is flushed, mark the flushed entries as not signaled so the poll logic doesn't re-insert the CQ entry thinking its an out of order completion. The bug can cause the NFS/RDMA server to crash due to processing the same completed work request twice. Signed-off-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
parent
56a50adda4
commit
ec6995ddaa
@ -410,6 +410,7 @@ int cxio_flush_sq(struct t3_wq *wq, struct t3_cq *cq, int count)
|
||||
ptr = wq->sq_rptr + count;
|
||||
sqp = wq->sq + Q_PTR2IDX(ptr, wq->sq_size_log2);
|
||||
while (ptr != wq->sq_wptr) {
|
||||
sqp->signaled = 0;
|
||||
insert_sq_cqe(wq, cq, sqp);
|
||||
ptr++;
|
||||
sqp = wq->sq + Q_PTR2IDX(ptr, wq->sq_size_log2);
|
||||
|
Loading…
Reference in New Issue
Block a user