|
@@ -803,7 +803,7 @@ int iwch_post_terminate(struct iwch_qp *qhp, struct respQ_msg_t *rsp_msg)
|
|
|
* Assumes qhp lock is held.
|
|
|
*/
|
|
|
static void __flush_qp(struct iwch_qp *qhp, struct iwch_cq *rchp,
|
|
|
- struct iwch_cq *schp, unsigned long *flag)
|
|
|
+ struct iwch_cq *schp)
|
|
|
{
|
|
|
int count;
|
|
|
int flushed;
|
|
@@ -812,44 +812,44 @@ static void __flush_qp(struct iwch_qp *qhp, struct iwch_cq *rchp,
|
|
|
PDBG("%s qhp %p rchp %p schp %p\n", __func__, qhp, rchp, schp);
|
|
|
/* take a ref on the qhp since we must release the lock */
|
|
|
atomic_inc(&qhp->refcnt);
|
|
|
- spin_unlock_irqrestore(&qhp->lock, *flag);
|
|
|
+ spin_unlock(&qhp->lock);
|
|
|
|
|
|
/* locking hierarchy: cq lock first, then qp lock. */
|
|
|
- spin_lock_irqsave(&rchp->lock, *flag);
|
|
|
+ spin_lock(&rchp->lock);
|
|
|
spin_lock(&qhp->lock);
|
|
|
cxio_flush_hw_cq(&rchp->cq);
|
|
|
cxio_count_rcqes(&rchp->cq, &qhp->wq, &count);
|
|
|
flushed = cxio_flush_rq(&qhp->wq, &rchp->cq, count);
|
|
|
spin_unlock(&qhp->lock);
|
|
|
- spin_unlock_irqrestore(&rchp->lock, *flag);
|
|
|
+ spin_unlock(&rchp->lock);
|
|
|
if (flushed) {
|
|
|
- spin_lock_irqsave(&rchp->comp_handler_lock, *flag);
|
|
|
+ spin_lock(&rchp->comp_handler_lock);
|
|
|
(*rchp->ibcq.comp_handler)(&rchp->ibcq, rchp->ibcq.cq_context);
|
|
|
- spin_unlock_irqrestore(&rchp->comp_handler_lock, *flag);
|
|
|
+ spin_unlock(&rchp->comp_handler_lock);
|
|
|
}
|
|
|
|
|
|
/* locking hierarchy: cq lock first, then qp lock. */
|
|
|
- spin_lock_irqsave(&schp->lock, *flag);
|
|
|
+ spin_lock(&schp->lock);
|
|
|
spin_lock(&qhp->lock);
|
|
|
cxio_flush_hw_cq(&schp->cq);
|
|
|
cxio_count_scqes(&schp->cq, &qhp->wq, &count);
|
|
|
flushed = cxio_flush_sq(&qhp->wq, &schp->cq, count);
|
|
|
spin_unlock(&qhp->lock);
|
|
|
- spin_unlock_irqrestore(&schp->lock, *flag);
|
|
|
+ spin_unlock(&schp->lock);
|
|
|
if (flushed) {
|
|
|
- spin_lock_irqsave(&schp->comp_handler_lock, *flag);
|
|
|
+ spin_lock(&schp->comp_handler_lock);
|
|
|
(*schp->ibcq.comp_handler)(&schp->ibcq, schp->ibcq.cq_context);
|
|
|
- spin_unlock_irqrestore(&schp->comp_handler_lock, *flag);
|
|
|
+ spin_unlock(&schp->comp_handler_lock);
|
|
|
}
|
|
|
|
|
|
/* deref */
|
|
|
if (atomic_dec_and_test(&qhp->refcnt))
|
|
|
wake_up(&qhp->wait);
|
|
|
|
|
|
- spin_lock_irqsave(&qhp->lock, *flag);
|
|
|
+ spin_lock(&qhp->lock);
|
|
|
}
|
|
|
|
|
|
-static void flush_qp(struct iwch_qp *qhp, unsigned long *flag)
|
|
|
+static void flush_qp(struct iwch_qp *qhp)
|
|
|
{
|
|
|
struct iwch_cq *rchp, *schp;
|
|
|
|
|
@@ -859,19 +859,19 @@ static void flush_qp(struct iwch_qp *qhp, unsigned long *flag)
|
|
|
if (qhp->ibqp.uobject) {
|
|
|
cxio_set_wq_in_error(&qhp->wq);
|
|
|
cxio_set_cq_in_error(&rchp->cq);
|
|
|
- spin_lock_irqsave(&rchp->comp_handler_lock, *flag);
|
|
|
+ spin_lock(&rchp->comp_handler_lock);
|
|
|
(*rchp->ibcq.comp_handler)(&rchp->ibcq, rchp->ibcq.cq_context);
|
|
|
- spin_unlock_irqrestore(&rchp->comp_handler_lock, *flag);
|
|
|
+ spin_unlock(&rchp->comp_handler_lock);
|
|
|
if (schp != rchp) {
|
|
|
cxio_set_cq_in_error(&schp->cq);
|
|
|
- spin_lock_irqsave(&schp->comp_handler_lock, *flag);
|
|
|
+ spin_lock(&schp->comp_handler_lock);
|
|
|
(*schp->ibcq.comp_handler)(&schp->ibcq,
|
|
|
schp->ibcq.cq_context);
|
|
|
- spin_unlock_irqrestore(&schp->comp_handler_lock, *flag);
|
|
|
+ spin_unlock(&schp->comp_handler_lock);
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
- __flush_qp(qhp, rchp, schp, flag);
|
|
|
+ __flush_qp(qhp, rchp, schp);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -1030,7 +1030,7 @@ int iwch_modify_qp(struct iwch_dev *rhp, struct iwch_qp *qhp,
|
|
|
break;
|
|
|
case IWCH_QP_STATE_ERROR:
|
|
|
qhp->attr.state = IWCH_QP_STATE_ERROR;
|
|
|
- flush_qp(qhp, &flag);
|
|
|
+ flush_qp(qhp);
|
|
|
break;
|
|
|
default:
|
|
|
ret = -EINVAL;
|
|
@@ -1078,7 +1078,7 @@ int iwch_modify_qp(struct iwch_dev *rhp, struct iwch_qp *qhp,
|
|
|
}
|
|
|
switch (attrs->next_state) {
|
|
|
case IWCH_QP_STATE_IDLE:
|
|
|
- flush_qp(qhp, &flag);
|
|
|
+ flush_qp(qhp);
|
|
|
qhp->attr.state = IWCH_QP_STATE_IDLE;
|
|
|
qhp->attr.llp_stream_handle = NULL;
|
|
|
put_ep(&qhp->ep->com);
|
|
@@ -1132,7 +1132,7 @@ err:
|
|
|
free=1;
|
|
|
wake_up(&qhp->wait);
|
|
|
BUG_ON(!ep);
|
|
|
- flush_qp(qhp, &flag);
|
|
|
+ flush_qp(qhp);
|
|
|
out:
|
|
|
spin_unlock_irqrestore(&qhp->lock, flag);
|
|
|
|