diff options
Diffstat (limited to 'drivers/infiniband/hw/qib/qib_sdma.c')
-rw-r--r-- | drivers/infiniband/hw/qib/qib_sdma.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/qib/qib_sdma.c b/drivers/infiniband/hw/qib/qib_sdma.c index b8456881f7f6..cad44491320b 100644 --- a/drivers/infiniband/hw/qib/qib_sdma.c +++ b/drivers/infiniband/hw/qib/qib_sdma.c | |||
@@ -656,6 +656,7 @@ unmap: | |||
656 | } | 656 | } |
657 | qp = tx->qp; | 657 | qp = tx->qp; |
658 | qib_put_txreq(tx); | 658 | qib_put_txreq(tx); |
659 | spin_lock(&qp->r_lock); | ||
659 | spin_lock(&qp->s_lock); | 660 | spin_lock(&qp->s_lock); |
660 | if (qp->ibqp.qp_type == IB_QPT_RC) { | 661 | if (qp->ibqp.qp_type == IB_QPT_RC) { |
661 | /* XXX what about error sending RDMA read responses? */ | 662 | /* XXX what about error sending RDMA read responses? */ |
@@ -664,6 +665,7 @@ unmap: | |||
664 | } else if (qp->s_wqe) | 665 | } else if (qp->s_wqe) |
665 | qib_send_complete(qp, qp->s_wqe, IB_WC_GENERAL_ERR); | 666 | qib_send_complete(qp, qp->s_wqe, IB_WC_GENERAL_ERR); |
666 | spin_unlock(&qp->s_lock); | 667 | spin_unlock(&qp->s_lock); |
668 | spin_unlock(&qp->r_lock); | ||
667 | /* return zero to process the next send work request */ | 669 | /* return zero to process the next send work request */ |
668 | goto unlock; | 670 | goto unlock; |
669 | 671 | ||