From: Steve Wise Date: Fri, 21 Nov 2014 15:36:36 +0000 (-0600) Subject: RDMA/cxgb4: Wake up waiters after flushing the qp X-Git-Tag: v5.15~16633^2^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5b341808835e29cff9e074712d39cee376f8d866;p=platform%2Fkernel%2Flinux-starfive.git RDMA/cxgb4: Wake up waiters after flushing the qp When transitioning into ERROR state, the QP was getting flushed after waking up any waiters. This can cause applications to miss flushed work requests which can stall an NFS mount. Signed-off-by: Steve Wise Signed-off-by: Roland Dreier --- diff --git a/drivers/infiniband/hw/cxgb4/qp.c b/drivers/infiniband/hw/cxgb4/qp.c index 2ed3ece..bb85d47 100644 --- a/drivers/infiniband/hw/cxgb4/qp.c +++ b/drivers/infiniband/hw/cxgb4/qp.c @@ -1538,9 +1538,9 @@ err: set_state(qhp, C4IW_QP_STATE_ERROR); free = 1; abort = 1; - wake_up(&qhp->wait); BUG_ON(!ep); flush_qp(qhp); + wake_up(&qhp->wait); out: mutex_unlock(&qhp->mutex);