Commit 543753d9 authored by Jiri Pirko's avatar Jiri Pirko Committed by Jakub Kicinski
Browse files

devlink: remove devlink_dump_for_each_instance_get() helper



devlink_dump_for_each_instance_get() is currently called from
a single place in netlink.c. As there is no need to use
this helper anywhere else in the future, remove it and
call devlinks_xa_find_get() directly from while loop
in devlink_nl_instance_iter_dump(). Also remove redundant
idx clear on loop end as it is already done
in devlink_nl_instance_iter_dump().

Signed-off-by: default avatarJiri Pirko <jiri@nvidia.com>
Reviewed-by: default avatarJacob Keller <jacob.e.keller@intel.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 19be51a9
Loading
Loading
Loading
Loading
+0 −11
Original line number Diff line number Diff line
@@ -123,17 +123,6 @@ struct devlink_gen_cmd {
			struct netlink_callback *cb);
};

/* Iterate over registered devlink instances for devlink dump.
 * devlink_put() needs to be called for each iterated devlink pointer
 * in loop body in order to release the reference.
 * Note: this is NOT a generic iterator, it makes assumptions about the use
 *	 of @state and can only be used once per dumpit implementation.
 */
#define devlink_dump_for_each_instance_get(msg, state, devlink)		\
	for (; (devlink = devlinks_xa_find_get(sock_net(msg->sk),	\
					       &state->instance));	\
	     state->instance++, state->idx = 0)

extern const struct genl_small_ops devlink_nl_ops[56];

struct devlink *
+4 −1
Original line number Diff line number Diff line
@@ -207,7 +207,8 @@ int devlink_nl_instance_iter_dump(struct sk_buff *msg,

	cmd = devl_gen_cmds[info->op.cmd];

	devlink_dump_for_each_instance_get(msg, state, devlink) {
	while ((devlink = devlinks_xa_find_get(sock_net(msg->sk),
					       &state->instance))) {
		devl_lock(devlink);

		if (devl_is_registered(devlink))
@@ -221,6 +222,8 @@ int devlink_nl_instance_iter_dump(struct sk_buff *msg,
		if (err)
			break;

		state->instance++;

		/* restart sub-object walk for the next instance */
		state->idx = 0;
	}