uverbs: fix reference counting in error handling. Signed-off-by: Jack Morgenstein <[EMAIL PROTECTED]> Signed-off-by: Michael S. Tsirkin <[EMAIL PROTECTED]>
Index: linux-kernel/drivers/infiniband/core/uverbs_cmd.c =================================================================== --- linux-kernel/drivers/infiniband/core/uverbs_cmd.c (revision 4611) +++ linux-kernel/drivers/infiniband/core/uverbs_cmd.c (working copy) @@ -488,6 +488,7 @@ err_idr: idr_remove(&ib_uverbs_mr_idr, obj->uobject.id); err_unreg: + atomic_dec(&pd->usecnt); ib_dereg_mr(mr); err_up: @@ -934,6 +935,11 @@ err_idr: idr_remove(&ib_uverbs_qp_idr, uobj->uevent.uobject.id); err_destroy: + atomic_dec(&pd->usecnt); + atomic_dec(&attr.send_cq->usecnt); + atomic_dec(&attr.recv_cq->usecnt); + if (attr.srq) + atomic_dec(&attr.srq->usecnt); ib_destroy_qp(qp); err_up: @@ -1728,6 +1734,7 @@ err_idr: idr_remove(&ib_uverbs_srq_idr, uobj->uobject.id); err_destroy: + atomic_dec(&pd->usecnt); ib_destroy_srq(srq); err_up: -- MST _______________________________________________ openib-general mailing list openib-general@openib.org http://openib.org/mailman/listinfo/openib-general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general