Commit 2165fc26 authored by Leon Romanovsky's avatar Leon Romanovsky Committed by Jason Gunthorpe

RDMA/restrack: Consolidate task name updates in one place

Unify task update and kernel name set in one place.
Reviewed-by: default avatarArtemy Kovalyov <artemyko@mellanox.com>
Reviewed-by: default avatarYossi Itigin <yosefe@mellanox.com>
Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
Reviewed-by: default avatarSteve Wise <swise@opengridcomputing.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
parent 363ad355
...@@ -875,10 +875,7 @@ struct rdma_cm_id *__rdma_create_id(struct net *net, ...@@ -875,10 +875,7 @@ struct rdma_cm_id *__rdma_create_id(struct net *net,
if (!id_priv) if (!id_priv)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
if (caller) rdma_restrack_set_task(&id_priv->res, caller);
id_priv->res.kern_name = caller;
else
rdma_restrack_set_task(&id_priv->res, current);
id_priv->res.type = RDMA_RESTRACK_CM_ID; id_priv->res.type = RDMA_RESTRACK_CM_ID;
id_priv->state = RDMA_CM_IDLE; id_priv->state = RDMA_CM_IDLE;
id_priv->id.context = context; id_priv->id.context = context;
...@@ -3945,10 +3942,7 @@ int __rdma_accept(struct rdma_cm_id *id, struct rdma_conn_param *conn_param, ...@@ -3945,10 +3942,7 @@ int __rdma_accept(struct rdma_cm_id *id, struct rdma_conn_param *conn_param,
id_priv = container_of(id, struct rdma_id_private, id); id_priv = container_of(id, struct rdma_id_private, id);
if (caller) rdma_restrack_set_task(&id_priv->res, caller);
id_priv->res.kern_name = caller;
else
rdma_restrack_set_task(&id_priv->res, current);
if (!cma_comp(id_priv, RDMA_CM_CONNECT)) if (!cma_comp(id_priv, RDMA_CM_CONNECT))
return -EINVAL; return -EINVAL;
......
...@@ -161,7 +161,7 @@ struct ib_cq *__ib_alloc_cq(struct ib_device *dev, void *private, ...@@ -161,7 +161,7 @@ struct ib_cq *__ib_alloc_cq(struct ib_device *dev, void *private,
goto out_destroy_cq; goto out_destroy_cq;
cq->res.type = RDMA_RESTRACK_CQ; cq->res.type = RDMA_RESTRACK_CQ;
cq->res.kern_name = caller; rdma_restrack_set_task(&cq->res, caller);
rdma_restrack_add(&cq->res); rdma_restrack_add(&cq->res);
switch (cq->poll_ctx) { switch (cq->poll_ctx) {
......
...@@ -156,12 +156,17 @@ static bool res_is_user(struct rdma_restrack_entry *res) ...@@ -156,12 +156,17 @@ static bool res_is_user(struct rdma_restrack_entry *res)
} }
void rdma_restrack_set_task(struct rdma_restrack_entry *res, void rdma_restrack_set_task(struct rdma_restrack_entry *res,
struct task_struct *task) const char *caller)
{ {
if (caller) {
res->kern_name = caller;
return;
}
if (res->task) if (res->task)
put_task_struct(res->task); put_task_struct(res->task);
get_task_struct(task); get_task_struct(current);
res->task = task; res->task = current;
} }
EXPORT_SYMBOL(rdma_restrack_set_task); EXPORT_SYMBOL(rdma_restrack_set_task);
...@@ -177,7 +182,7 @@ void rdma_restrack_add(struct rdma_restrack_entry *res) ...@@ -177,7 +182,7 @@ void rdma_restrack_add(struct rdma_restrack_entry *res)
if (res_is_user(res)) { if (res_is_user(res)) {
if (!res->task) if (!res->task)
rdma_restrack_set_task(res, current); rdma_restrack_set_task(res, NULL);
res->kern_name = NULL; res->kern_name = NULL;
} else { } else {
set_kern_name(res); set_kern_name(res);
......
...@@ -264,7 +264,7 @@ struct ib_pd *__ib_alloc_pd(struct ib_device *device, unsigned int flags, ...@@ -264,7 +264,7 @@ struct ib_pd *__ib_alloc_pd(struct ib_device *device, unsigned int flags,
} }
pd->res.type = RDMA_RESTRACK_PD; pd->res.type = RDMA_RESTRACK_PD;
pd->res.kern_name = caller; rdma_restrack_set_task(&pd->res, caller);
rdma_restrack_add(&pd->res); rdma_restrack_add(&pd->res);
if (mr_access_flags) { if (mr_access_flags) {
...@@ -1889,7 +1889,7 @@ struct ib_cq *__ib_create_cq(struct ib_device *device, ...@@ -1889,7 +1889,7 @@ struct ib_cq *__ib_create_cq(struct ib_device *device,
cq->cq_context = cq_context; cq->cq_context = cq_context;
atomic_set(&cq->usecnt, 0); atomic_set(&cq->usecnt, 0);
cq->res.type = RDMA_RESTRACK_CQ; cq->res.type = RDMA_RESTRACK_CQ;
cq->res.kern_name = caller; rdma_restrack_set_task(&cq->res, caller);
rdma_restrack_add(&cq->res); rdma_restrack_add(&cq->res);
} }
......
...@@ -173,10 +173,10 @@ int rdma_restrack_put(struct rdma_restrack_entry *res); ...@@ -173,10 +173,10 @@ int rdma_restrack_put(struct rdma_restrack_entry *res);
/** /**
* rdma_restrack_set_task() - set the task for this resource * rdma_restrack_set_task() - set the task for this resource
* @res: resource entry * @res: resource entry
* @task: task struct * @caller: kernel name, the current task will be used if the caller is NULL.
*/ */
void rdma_restrack_set_task(struct rdma_restrack_entry *res, void rdma_restrack_set_task(struct rdma_restrack_entry *res,
struct task_struct *task); const char *caller);
/* /*
* Helper functions for rdma drivers when filling out * Helper functions for rdma drivers when filling out
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment