Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4f2bd6b3 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'devlink-small-cleanups'



Jiri Pirko says:

====================
devlink: small cleanup around eswitch [sg]et

Contains small devlink cleanup around eswitch get/set commands.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 0d2164af 4456f61c
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -57,8 +57,14 @@ enum devlink_command {
	DEVLINK_CMD_SB_OCC_SNAPSHOT,
	DEVLINK_CMD_SB_OCC_MAX_CLEAR,

	DEVLINK_CMD_ESWITCH_MODE_GET,
	DEVLINK_CMD_ESWITCH_MODE_SET,
	DEVLINK_CMD_ESWITCH_GET,
#define DEVLINK_CMD_ESWITCH_MODE_GET /* obsolete, never use this! */ \
	DEVLINK_CMD_ESWITCH_GET

	DEVLINK_CMD_ESWITCH_SET,
#define DEVLINK_CMD_ESWITCH_MODE_SET /* obsolete, never use this! */ \
	DEVLINK_CMD_ESWITCH_SET

	/* add new commands above here */

	__DEVLINK_CMD_MAX,
+26 −24
Original line number Diff line number Diff line
@@ -1392,7 +1392,7 @@ static int devlink_nl_cmd_sb_occ_max_clear_doit(struct sk_buff *skb,
	return -EOPNOTSUPP;
}

static int devlink_eswitch_fill(struct sk_buff *msg, struct devlink *devlink,
static int devlink_nl_eswitch_fill(struct sk_buff *msg, struct devlink *devlink,
				   enum devlink_command cmd, u32 portid,
				   u32 seq, int flags)
{
@@ -1408,34 +1408,36 @@ static int devlink_eswitch_fill(struct sk_buff *msg, struct devlink *devlink,

	err = devlink_nl_put_handle(msg, devlink);
	if (err)
		goto out;
		goto nla_put_failure;

	if (ops->eswitch_mode_get) {
		err = ops->eswitch_mode_get(devlink, &mode);
		if (err)
		goto out;
			goto nla_put_failure;
		err = nla_put_u16(msg, DEVLINK_ATTR_ESWITCH_MODE, mode);
		if (err)
		goto out;
			goto nla_put_failure;
	}

	if (ops->eswitch_inline_mode_get) {
		err = ops->eswitch_inline_mode_get(devlink, &inline_mode);
		if (err)
			goto out;
			goto nla_put_failure;
		err = nla_put_u8(msg, DEVLINK_ATTR_ESWITCH_INLINE_MODE,
				 inline_mode);
		if (err)
			goto out;
			goto nla_put_failure;
	}

	genlmsg_end(msg, hdr);
	return 0;

out:
nla_put_failure:
	genlmsg_cancel(msg, hdr);
	return err;
}

static int devlink_nl_cmd_eswitch_mode_get_doit(struct sk_buff *skb,
static int devlink_nl_cmd_eswitch_get_doit(struct sk_buff *skb,
					   struct genl_info *info)
{
	struct devlink *devlink = info->user_ptr[0];
@@ -1443,14 +1445,14 @@ static int devlink_nl_cmd_eswitch_mode_get_doit(struct sk_buff *skb,
	struct sk_buff *msg;
	int err;

	if (!ops || !ops->eswitch_mode_get)
	if (!ops)
		return -EOPNOTSUPP;

	msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL);
	if (!msg)
		return -ENOMEM;

	err = devlink_eswitch_fill(msg, devlink, DEVLINK_CMD_ESWITCH_MODE_GET,
	err = devlink_nl_eswitch_fill(msg, devlink, DEVLINK_CMD_ESWITCH_GET,
				      info->snd_portid, info->snd_seq, 0);

	if (err) {
@@ -1461,7 +1463,7 @@ static int devlink_nl_cmd_eswitch_mode_get_doit(struct sk_buff *skb,
	return genlmsg_reply(msg, info);
}

static int devlink_nl_cmd_eswitch_mode_set_doit(struct sk_buff *skb,
static int devlink_nl_cmd_eswitch_set_doit(struct sk_buff *skb,
					   struct genl_info *info)
{
	struct devlink *devlink = info->user_ptr[0];
@@ -1629,15 +1631,15 @@ static const struct genl_ops devlink_nl_ops[] = {
				  DEVLINK_NL_FLAG_LOCK_PORTS,
	},
	{
		.cmd = DEVLINK_CMD_ESWITCH_MODE_GET,
		.doit = devlink_nl_cmd_eswitch_mode_get_doit,
		.cmd = DEVLINK_CMD_ESWITCH_GET,
		.doit = devlink_nl_cmd_eswitch_get_doit,
		.policy = devlink_nl_policy,
		.flags = GENL_ADMIN_PERM,
		.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,
	},
	{
		.cmd = DEVLINK_CMD_ESWITCH_MODE_SET,
		.doit = devlink_nl_cmd_eswitch_mode_set_doit,
		.cmd = DEVLINK_CMD_ESWITCH_SET,
		.doit = devlink_nl_cmd_eswitch_set_doit,
		.policy = devlink_nl_policy,
		.flags = GENL_ADMIN_PERM,
		.internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK,