RDMA/ocrdma: Tiny locking cleanup

We only need to disable the IRQs one time.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

[ Rename "wq_flags" to more conventional "flags."  - Roland ]

Signed-off-by: Roland Dreier <roland@purestorage.com>
This commit is contained in:
Dan Carpenter 2012-05-02 09:14:47 +03:00 committed by Roland Dreier
parent 55a8d62a3b
commit d19081e044

View file

@ -1431,7 +1431,7 @@ int ocrdma_destroy_qp(struct ib_qp *ibqp)
struct ocrdma_dev *dev;
struct ib_qp_attr attrs;
int attr_mask = IB_QP_STATE;
unsigned long wq_flags = 0, rq_flags = 0;
unsigned long flags;
qp = get_ocrdma_qp(ibqp);
dev = qp->dev;
@ -1453,15 +1453,15 @@ int ocrdma_destroy_qp(struct ib_qp *ibqp)
* acquire CQ lock while destroy is in progress, in order to
* protect against proessing in-flight CQEs for this QP.
*/
spin_lock_irqsave(&qp->sq_cq->cq_lock, wq_flags);
spin_lock_irqsave(&qp->sq_cq->cq_lock, flags);
if (qp->rq_cq && (qp->rq_cq != qp->sq_cq))
spin_lock_irqsave(&qp->rq_cq->cq_lock, rq_flags);
spin_lock(&qp->rq_cq->cq_lock);
ocrdma_del_qpn_map(dev, qp);
if (qp->rq_cq && (qp->rq_cq != qp->sq_cq))
spin_unlock_irqrestore(&qp->rq_cq->cq_lock, rq_flags);
spin_unlock_irqrestore(&qp->sq_cq->cq_lock, wq_flags);
spin_unlock(&qp->rq_cq->cq_lock);
spin_unlock_irqrestore(&qp->sq_cq->cq_lock, flags);
if (!pd->uctx) {
ocrdma_discard_cqes(qp, qp->sq_cq);