RDMA/cma: Delete from restrack DB after successful destroy
Update the code to have similar destroy pattern like other IB objects. This change create asymmetry to the rdma_id_private create flow to make sure that memory is managed by restrack. Link: https://lore.kernel.org/r/20200922091106.2152715-2-leon@kernel.org Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
f5449e7480
commit
60aaeffa36
|
@ -1804,7 +1804,6 @@ static void _destroy_id(struct rdma_id_private *id_priv,
|
|||
{
|
||||
cma_cancel_operation(id_priv, state);
|
||||
|
||||
rdma_restrack_del(&id_priv->res);
|
||||
if (id_priv->cma_dev) {
|
||||
if (rdma_cap_ib_cm(id_priv->id.device, 1)) {
|
||||
if (id_priv->cm_id.ib)
|
||||
|
@ -1830,6 +1829,7 @@ static void _destroy_id(struct rdma_id_private *id_priv,
|
|||
rdma_put_gid_attr(id_priv->id.route.addr.dev_addr.sgid_attr);
|
||||
|
||||
put_net(id_priv->id.route.addr.dev_addr.net);
|
||||
rdma_restrack_del(&id_priv->res);
|
||||
kfree(id_priv);
|
||||
}
|
||||
|
||||
|
@ -3721,7 +3721,6 @@ int rdma_bind_addr(struct rdma_cm_id *id, struct sockaddr *addr)
|
|||
|
||||
return 0;
|
||||
err2:
|
||||
rdma_restrack_del(&id_priv->res);
|
||||
if (id_priv->cma_dev)
|
||||
cma_release_dev(id_priv);
|
||||
err1:
|
||||
|
|
Loading…
Reference in New Issue