Skip to content

Commit f732e71

Browse files
Leon Romanovskyjgunthorpe
authored andcommitted
RDMA/nldev: Dynamically generate restrack dumpit callbacks
There is no need to manually write same callbacks, automatically generate them using C-macro language. This macro is going to be extended to generate doit callbacks too, so use general name for this macro. Signed-off-by: Leon Romanovsky <[email protected]> Reviewed-by: Yuval Shaia <[email protected]> Signed-off-by: Jason Gunthorpe <[email protected]>
1 parent cf34e1f commit f732e71

File tree

1 file changed

+11
-28
lines changed

1 file changed

+11
-28
lines changed

drivers/infiniband/core/nldev.c

Lines changed: 11 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,35 +1077,18 @@ next: idx++;
10771077
return ret;
10781078
}
10791079

1080-
static int nldev_res_get_qp_dumpit(struct sk_buff *skb,
1081-
struct netlink_callback *cb)
1082-
{
1083-
return res_get_common_dumpit(skb, cb, RDMA_RESTRACK_QP);
1084-
}
1085-
1086-
static int nldev_res_get_cm_id_dumpit(struct sk_buff *skb,
1087-
struct netlink_callback *cb)
1088-
{
1089-
return res_get_common_dumpit(skb, cb, RDMA_RESTRACK_CM_ID);
1090-
}
1091-
1092-
static int nldev_res_get_cq_dumpit(struct sk_buff *skb,
1093-
struct netlink_callback *cb)
1094-
{
1095-
return res_get_common_dumpit(skb, cb, RDMA_RESTRACK_CQ);
1096-
}
1097-
1098-
static int nldev_res_get_mr_dumpit(struct sk_buff *skb,
1099-
struct netlink_callback *cb)
1100-
{
1101-
return res_get_common_dumpit(skb, cb, RDMA_RESTRACK_MR);
1102-
}
1080+
#define RES_GET_FUNCS(name, type) \
1081+
static int nldev_res_get_##name##_dumpit(struct sk_buff *skb, \
1082+
struct netlink_callback *cb) \
1083+
{ \
1084+
return res_get_common_dumpit(skb, cb, type); \
1085+
}
11031086

1104-
static int nldev_res_get_pd_dumpit(struct sk_buff *skb,
1105-
struct netlink_callback *cb)
1106-
{
1107-
return res_get_common_dumpit(skb, cb, RDMA_RESTRACK_PD);
1108-
}
1087+
RES_GET_FUNCS(qp, RDMA_RESTRACK_QP);
1088+
RES_GET_FUNCS(cm_id, RDMA_RESTRACK_CM_ID);
1089+
RES_GET_FUNCS(cq, RDMA_RESTRACK_CQ);
1090+
RES_GET_FUNCS(pd, RDMA_RESTRACK_PD);
1091+
RES_GET_FUNCS(mr, RDMA_RESTRACK_MR);
11091092

11101093
static const struct rdma_nl_cbs nldev_cb_table[RDMA_NLDEV_NUM_OPS] = {
11111094
[RDMA_NLDEV_CMD_GET] = {

0 commit comments

Comments
 (0)