On Wed, 2018-01-03 at 07:13 +0200, Moni Shoua wrote: > Anyway, It's possible that you hit a bug related to destroying a QP. The patch below is not a full solution but seems to help. It would be appreciated if you could have a look at this patch. Thanks, Bart. diff --git a/drivers/infiniband/sw/rxe/rxe_req.c b/drivers/infiniband/sw/rxe/rxe_req.c index 6a6995159ec6..b6aa5c67e0eb 100644 --- a/drivers/infiniband/sw/rxe/rxe_req.c +++ b/drivers/infiniband/sw/rxe/rxe_req.c @@ -601,12 +601,8 @@ int rxe_requester(void *arg) rxe_add_ref(qp); next_wqe: - if (unlikely(!qp->valid)) { - rxe_drain_req_pkts(qp, true); - goto exit; - } - - if (unlikely(qp->req.state == QP_STATE_ERROR)) { + if (unlikely(!qp->valid || qp->req.state == QP_STATE_ERROR)) { + rxe_run_task(&qp->resp.task, 1); rxe_drain_req_pkts(qp, true); goto exit; }��.n��������+%������w��{.n�����{���fk��ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f