mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-04 17:44:14 +08:00
RDMA/core: Save kernel caller name when creating PD and CQ objects
The KBUILD_MODNAME variable contains the module name and it is known for kernel users during compilation, so let's reuse it to track the owners. Followup patches will store this for resource tracking. Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
parent
e449644741
commit
f66c8ba4c9
@ -120,20 +120,22 @@ static void ib_cq_completion_workqueue(struct ib_cq *cq, void *private)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ib_alloc_cq - allocate a completion queue
|
* __ib_alloc_cq - allocate a completion queue
|
||||||
* @dev: device to allocate the CQ for
|
* @dev: device to allocate the CQ for
|
||||||
* @private: driver private data, accessible from cq->cq_context
|
* @private: driver private data, accessible from cq->cq_context
|
||||||
* @nr_cqe: number of CQEs to allocate
|
* @nr_cqe: number of CQEs to allocate
|
||||||
* @comp_vector: HCA completion vectors for this CQ
|
* @comp_vector: HCA completion vectors for this CQ
|
||||||
* @poll_ctx: context to poll the CQ from.
|
* @poll_ctx: context to poll the CQ from.
|
||||||
|
* @caller: module owner name.
|
||||||
*
|
*
|
||||||
* This is the proper interface to allocate a CQ for in-kernel users. A
|
* This is the proper interface to allocate a CQ for in-kernel users. A
|
||||||
* CQ allocated with this interface will automatically be polled from the
|
* CQ allocated with this interface will automatically be polled from the
|
||||||
* specified context. The ULP must use wr->wr_cqe instead of wr->wr_id
|
* specified context. The ULP must use wr->wr_cqe instead of wr->wr_id
|
||||||
* to use this CQ abstraction.
|
* to use this CQ abstraction.
|
||||||
*/
|
*/
|
||||||
struct ib_cq *ib_alloc_cq(struct ib_device *dev, void *private,
|
struct ib_cq *__ib_alloc_cq(struct ib_device *dev, void *private,
|
||||||
int nr_cqe, int comp_vector, enum ib_poll_context poll_ctx)
|
int nr_cqe, int comp_vector,
|
||||||
|
enum ib_poll_context poll_ctx, const char *caller)
|
||||||
{
|
{
|
||||||
struct ib_cq_init_attr cq_attr = {
|
struct ib_cq_init_attr cq_attr = {
|
||||||
.cqe = nr_cqe,
|
.cqe = nr_cqe,
|
||||||
@ -185,7 +187,7 @@ out_destroy_cq:
|
|||||||
cq->device->destroy_cq(cq);
|
cq->device->destroy_cq(cq);
|
||||||
return ERR_PTR(ret);
|
return ERR_PTR(ret);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(ib_alloc_cq);
|
EXPORT_SYMBOL(__ib_alloc_cq);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ib_free_cq - free a completion queue
|
* ib_free_cq - free a completion queue
|
||||||
|
@ -1782,7 +1782,7 @@ int ib_detach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(ib_detach_mcast);
|
EXPORT_SYMBOL(ib_detach_mcast);
|
||||||
|
|
||||||
struct ib_xrcd *ib_alloc_xrcd(struct ib_device *device)
|
struct ib_xrcd *__ib_alloc_xrcd(struct ib_device *device, const char *caller)
|
||||||
{
|
{
|
||||||
struct ib_xrcd *xrcd;
|
struct ib_xrcd *xrcd;
|
||||||
|
|
||||||
@ -1800,7 +1800,7 @@ struct ib_xrcd *ib_alloc_xrcd(struct ib_device *device)
|
|||||||
|
|
||||||
return xrcd;
|
return xrcd;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(ib_alloc_xrcd);
|
EXPORT_SYMBOL(__ib_alloc_xrcd);
|
||||||
|
|
||||||
int ib_dealloc_xrcd(struct ib_xrcd *xrcd)
|
int ib_dealloc_xrcd(struct ib_xrcd *xrcd)
|
||||||
{
|
{
|
||||||
|
@ -3130,8 +3130,12 @@ static inline int ib_post_recv(struct ib_qp *qp,
|
|||||||
return qp->device->post_recv(qp, recv_wr, bad_recv_wr);
|
return qp->device->post_recv(qp, recv_wr, bad_recv_wr);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ib_cq *ib_alloc_cq(struct ib_device *dev, void *private,
|
struct ib_cq *__ib_alloc_cq(struct ib_device *dev, void *private,
|
||||||
int nr_cqe, int comp_vector, enum ib_poll_context poll_ctx);
|
int nr_cqe, int comp_vector,
|
||||||
|
enum ib_poll_context poll_ctx, const char *caller);
|
||||||
|
#define ib_alloc_cq(device, priv, nr_cqe, comp_vect, poll_ctx) \
|
||||||
|
__ib_alloc_cq((device), (priv), (nr_cqe), (comp_vect), (poll_ctx), KBUILD_MODNAME)
|
||||||
|
|
||||||
void ib_free_cq(struct ib_cq *cq);
|
void ib_free_cq(struct ib_cq *cq);
|
||||||
int ib_process_cq_direct(struct ib_cq *cq, int budget);
|
int ib_process_cq_direct(struct ib_cq *cq, int budget);
|
||||||
|
|
||||||
@ -3555,8 +3559,11 @@ int ib_detach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid);
|
|||||||
/**
|
/**
|
||||||
* ib_alloc_xrcd - Allocates an XRC domain.
|
* ib_alloc_xrcd - Allocates an XRC domain.
|
||||||
* @device: The device on which to allocate the XRC domain.
|
* @device: The device on which to allocate the XRC domain.
|
||||||
|
* @caller: Module name for kernel consumers
|
||||||
*/
|
*/
|
||||||
struct ib_xrcd *ib_alloc_xrcd(struct ib_device *device);
|
struct ib_xrcd *__ib_alloc_xrcd(struct ib_device *device, const char *caller);
|
||||||
|
#define ib_alloc_xrcd(device) \
|
||||||
|
__ib_alloc_xrcd((device), KBUILD_MODNAME)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ib_dealloc_xrcd - Deallocates an XRC domain.
|
* ib_dealloc_xrcd - Deallocates an XRC domain.
|
||||||
|
Loading…
Reference in New Issue
Block a user