|
@@ -1392,9 +1392,9 @@ 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,
|
|
|
- enum devlink_command cmd, u32 portid,
|
|
|
- u32 seq, int flags)
|
|
|
+static int devlink_nl_eswitch_fill(struct sk_buff *msg, struct devlink *devlink,
|
|
|
+ enum devlink_command cmd, u32 portid,
|
|
|
+ u32 seq, int flags)
|
|
|
{
|
|
|
const struct devlink_ops *ops = devlink->ops;
|
|
|
void *hdr;
|
|
@@ -1408,50 +1408,52 @@ 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;
|
|
|
|
|
|
- err = ops->eswitch_mode_get(devlink, &mode);
|
|
|
- if (err)
|
|
|
- goto out;
|
|
|
- err = nla_put_u16(msg, DEVLINK_ATTR_ESWITCH_MODE, mode);
|
|
|
- if (err)
|
|
|
- goto out;
|
|
|
+ if (ops->eswitch_mode_get) {
|
|
|
+ err = ops->eswitch_mode_get(devlink, &mode);
|
|
|
+ if (err)
|
|
|
+ goto nla_put_failure;
|
|
|
+ err = nla_put_u16(msg, DEVLINK_ATTR_ESWITCH_MODE, mode);
|
|
|
+ if (err)
|
|
|
+ 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,
|
|
|
- struct genl_info *info)
|
|
|
+static int devlink_nl_cmd_eswitch_get_doit(struct sk_buff *skb,
|
|
|
+ struct genl_info *info)
|
|
|
{
|
|
|
struct devlink *devlink = info->user_ptr[0];
|
|
|
const struct devlink_ops *ops = devlink->ops;
|
|
|
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,
|
|
|
- info->snd_portid, info->snd_seq, 0);
|
|
|
+ err = devlink_nl_eswitch_fill(msg, devlink, DEVLINK_CMD_ESWITCH_GET,
|
|
|
+ info->snd_portid, info->snd_seq, 0);
|
|
|
|
|
|
if (err) {
|
|
|
nlmsg_free(msg);
|
|
@@ -1461,8 +1463,8 @@ 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,
|
|
|
- struct genl_info *info)
|
|
|
+static int devlink_nl_cmd_eswitch_set_doit(struct sk_buff *skb,
|
|
|
+ struct genl_info *info)
|
|
|
{
|
|
|
struct devlink *devlink = info->user_ptr[0];
|
|
|
const struct devlink_ops *ops = devlink->ops;
|
|
@@ -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,
|