if (err)\r
goto err_wrid;\r
\r
+ if (err) {\r
+ mlx4_qp_release_range(dev->dev, sqpn, 1);\r
+ goto err_wrid;\r
+ }\r
+\r
/*\r
* Hardware wants QPN written in big-endian order (after\r
* shifting) for send doorbell. Precompute this value to save\r
mlx4_ib_unlock_cqs(send_cq, recv_cq);\r
\r
mlx4_qp_free(dev->dev, &qp->mqp);\r
+\r
+ if (!is_sqp(dev, qp))\r
+ mlx4_qp_release_range(dev->dev, qp->mqp.qpn, 1);\r
+\r
mlx4_mtt_cleanup(dev->dev, &qp->mtt);\r
\r
if (is_user) {\r
\r
#if 0\r
if (qp->mqp.qpn == 0x41)\r
- DbgPrint( "[MLX4_BUS] mlx4_ib_post_send : qtype %d, qpn %#x, nreq %d, sq.head %#x, wqe_ix %d, db %p \n", \r
+ cl_dbg_out( "[MLX4_BUS] mlx4_ib_post_send : qtype %d, qpn %#x, nreq %d, sq.head %#x, wqe_ix %d, db %p \n", \r
ibqp->qp_type, qp->mqp.qpn, nreq, qp->sq.head, ind, \r
(u8*)to_mdev(ibqp->device)->uar_map + MLX4_SEND_DOORBELL );\r
#endif \r
\r
#if 0\r
if (qp->mqp.qpn == 0x41)\r
- DbgPrint( "[MLX4_BUS] mlx4_ib_post_recv : qtype %d, qpn %#x, nreq %d, rq.head %#x, wqe_ix %d, db_obj %p, db %p \n", \r
+ cl_dbg_out( "[MLX4_BUS] mlx4_ib_post_recv : qtype %d, qpn %#x, nreq %d, rq.head %#x, wqe_ix %d, db_obj %p, db %p \n", \r
ibqp->qp_type, qp->mqp.qpn, nreq, qp->rq.head, ind, &qp->db, qp->db.db );\r
#endif \r
}\r