mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
rxe: fix broken receive queue draining
If we modified the qp to ERROR state, and drained the recieve queue, post_recv must trigger the responder task to complete the drain work request. Cc: Bart Van Assche <[email protected]> Signed-off-by: Vijay Immanuel <[email protected]> Signed-off-by: Sagi Grimberg <[email protected]> Reviewed-by: Bart Van Assche <[email protected]>-- Signed-off-by: Doug Ledford <[email protected]>
This commit is contained in:
parent
c75d3ec8c0
commit
1217197142
2 changed files with 6 additions and 0 deletions
|
|
@ -1219,6 +1219,9 @@ void rxe_drain_req_pkts(struct rxe_qp *qp, bool notify)
|
|||
kfree_skb(skb);
|
||||
}
|
||||
|
||||
if (notify)
|
||||
return;
|
||||
|
||||
while (!qp->srq && qp->rq.queue && queue_head(qp->rq.queue))
|
||||
advance_consumer(qp->rq.queue);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -914,6 +914,9 @@ static int rxe_post_recv(struct ib_qp *ibqp, struct ib_recv_wr *wr,
|
|||
|
||||
spin_unlock_irqrestore(&rq->producer_lock, flags);
|
||||
|
||||
if (qp->resp.state == QP_STATE_ERROR)
|
||||
rxe_run_task(&qp->resp.task, 1);
|
||||
|
||||
err1:
|
||||
return err;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue