RDMA/restrack: Consolidate task name updates in one place
Unify task update and kernel name set in one place. Reviewed-by: Artemy Kovalyov <artemyko@mellanox.com> Reviewed-by: Yossi Itigin <yosefe@mellanox.com> Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Reviewed-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
parent
363ad35577
commit
2165fc2640
@ -875,10 +875,7 @@ struct rdma_cm_id *__rdma_create_id(struct net *net,
|
||||
if (!id_priv)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
if (caller)
|
||||
id_priv->res.kern_name = caller;
|
||||
else
|
||||
rdma_restrack_set_task(&id_priv->res, current);
|
||||
rdma_restrack_set_task(&id_priv->res, caller);
|
||||
id_priv->res.type = RDMA_RESTRACK_CM_ID;
|
||||
id_priv->state = RDMA_CM_IDLE;
|
||||
id_priv->id.context = context;
|
||||
@ -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);
|
||||
|
||||
if (caller)
|
||||
id_priv->res.kern_name = caller;
|
||||
else
|
||||
rdma_restrack_set_task(&id_priv->res, current);
|
||||
rdma_restrack_set_task(&id_priv->res, caller);
|
||||
|
||||
if (!cma_comp(id_priv, RDMA_CM_CONNECT))
|
||||
return -EINVAL;
|
||||
|
@ -161,7 +161,7 @@ struct ib_cq *__ib_alloc_cq(struct ib_device *dev, void *private,
|
||||
goto out_destroy_cq;
|
||||
|
||||
cq->res.type = RDMA_RESTRACK_CQ;
|
||||
cq->res.kern_name = caller;
|
||||
rdma_restrack_set_task(&cq->res, caller);
|
||||
rdma_restrack_add(&cq->res);
|
||||
|
||||
switch (cq->poll_ctx) {
|
||||
|
@ -156,12 +156,17 @@ static bool res_is_user(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)
|
||||
put_task_struct(res->task);
|
||||
get_task_struct(task);
|
||||
res->task = task;
|
||||
get_task_struct(current);
|
||||
res->task = current;
|
||||
}
|
||||
EXPORT_SYMBOL(rdma_restrack_set_task);
|
||||
|
||||
@ -177,7 +182,7 @@ void rdma_restrack_add(struct rdma_restrack_entry *res)
|
||||
|
||||
if (res_is_user(res)) {
|
||||
if (!res->task)
|
||||
rdma_restrack_set_task(res, current);
|
||||
rdma_restrack_set_task(res, NULL);
|
||||
res->kern_name = NULL;
|
||||
} else {
|
||||
set_kern_name(res);
|
||||
|
@ -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.kern_name = caller;
|
||||
rdma_restrack_set_task(&pd->res, caller);
|
||||
rdma_restrack_add(&pd->res);
|
||||
|
||||
if (mr_access_flags) {
|
||||
@ -1889,7 +1889,7 @@ struct ib_cq *__ib_create_cq(struct ib_device *device,
|
||||
cq->cq_context = cq_context;
|
||||
atomic_set(&cq->usecnt, 0);
|
||||
cq->res.type = RDMA_RESTRACK_CQ;
|
||||
cq->res.kern_name = caller;
|
||||
rdma_restrack_set_task(&cq->res, caller);
|
||||
rdma_restrack_add(&cq->res);
|
||||
}
|
||||
|
||||
|
@ -173,10 +173,10 @@ int rdma_restrack_put(struct rdma_restrack_entry *res);
|
||||
/**
|
||||
* rdma_restrack_set_task() - set the task for this resource
|
||||
* @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,
|
||||
struct task_struct *task);
|
||||
const char *caller);
|
||||
|
||||
/*
|
||||
* Helper functions for rdma drivers when filling out
|
||||
|
Loading…
Reference in New Issue
Block a user