Signed-off_by: Alex Estrin
git-svn-id: svn://openib.tc.cornell.edu/gen1@1640
ad392aa1-c5ef-ae45-8dd8-
e69d62a5ef86
if (err)\r
goto err_mtt;\r
\r
- qp->sq.wrid = kmalloc(qp->sq.wqe_cnt * sizeof (u64), GFP_KERNEL);\r
- qp->rq.wrid = kmalloc(qp->rq.wqe_cnt * sizeof (u64), GFP_KERNEL);\r
+ if (qp->sq.wqe_cnt) {\r
+ qp->sq.wrid = kmalloc(qp->sq.wqe_cnt * sizeof (u64), GFP_KERNEL);\r
+ if (!qp->sq.wrid) {\r
+ err = -ENOMEM;\r
+ goto err_wrid;\r
+ }\r
+ } \r
\r
- if (!qp->sq.wrid || !qp->rq.wrid) {\r
- err = -ENOMEM;\r
- goto err_wrid;\r
+ if (qp->rq.wqe_cnt) {\r
+ qp->rq.wrid = kmalloc(qp->rq.wqe_cnt * sizeof (u64), GFP_KERNEL);\r
+ if (!qp->rq.wrid) {\r
+ err = -ENOMEM;\r
+ goto err_wrid;\r
+ }\r
}\r
}\r
\r
mlx4_ib_db_unmap_user(to_mucontext(pd->p_uctx),\r
&qp->db);\r
} else {\r
- kfree(qp->sq.wrid);\r
- kfree(qp->rq.wrid);\r
+ if (qp->sq.wrid)\r
+ kfree(qp->sq.wrid);\r
+ if (qp->rq.wrid)\r
+ kfree(qp->rq.wrid);\r
}\r
\r
err_mtt:\r