Commit f2ad1a52 authored by Ido Schimmel's avatar Ido Schimmel Committed by David S. Miller

net: devlink: Add extack to shared buffer operations

Add extack to shared buffer set operations, so that meaningful error
messages could be propagated to the user.
Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
Reviewed-by: default avatarPetr Machata <petrm@mellanox.com>
Cc: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 7e5ebd0b
...@@ -781,7 +781,8 @@ mlxsw_devlink_sb_pool_get(struct devlink *devlink, ...@@ -781,7 +781,8 @@ mlxsw_devlink_sb_pool_get(struct devlink *devlink,
static int static int
mlxsw_devlink_sb_pool_set(struct devlink *devlink, mlxsw_devlink_sb_pool_set(struct devlink *devlink,
unsigned int sb_index, u16 pool_index, u32 size, unsigned int sb_index, u16 pool_index, u32 size,
enum devlink_sb_threshold_type threshold_type) enum devlink_sb_threshold_type threshold_type,
struct netlink_ext_ack *extack)
{ {
struct mlxsw_core *mlxsw_core = devlink_priv(devlink); struct mlxsw_core *mlxsw_core = devlink_priv(devlink);
struct mlxsw_driver *mlxsw_driver = mlxsw_core->driver; struct mlxsw_driver *mlxsw_driver = mlxsw_core->driver;
...@@ -829,7 +830,8 @@ static int mlxsw_devlink_sb_port_pool_get(struct devlink_port *devlink_port, ...@@ -829,7 +830,8 @@ static int mlxsw_devlink_sb_port_pool_get(struct devlink_port *devlink_port,
static int mlxsw_devlink_sb_port_pool_set(struct devlink_port *devlink_port, static int mlxsw_devlink_sb_port_pool_set(struct devlink_port *devlink_port,
unsigned int sb_index, u16 pool_index, unsigned int sb_index, u16 pool_index,
u32 threshold) u32 threshold,
struct netlink_ext_ack *extack)
{ {
struct mlxsw_core *mlxsw_core = devlink_priv(devlink_port->devlink); struct mlxsw_core *mlxsw_core = devlink_priv(devlink_port->devlink);
struct mlxsw_driver *mlxsw_driver = mlxsw_core->driver; struct mlxsw_driver *mlxsw_driver = mlxsw_core->driver;
...@@ -864,7 +866,8 @@ static int ...@@ -864,7 +866,8 @@ static int
mlxsw_devlink_sb_tc_pool_bind_set(struct devlink_port *devlink_port, mlxsw_devlink_sb_tc_pool_bind_set(struct devlink_port *devlink_port,
unsigned int sb_index, u16 tc_index, unsigned int sb_index, u16 tc_index,
enum devlink_sb_pool_type pool_type, enum devlink_sb_pool_type pool_type,
u16 pool_index, u32 threshold) u16 pool_index, u32 threshold,
struct netlink_ext_ack *extack)
{ {
struct mlxsw_core *mlxsw_core = devlink_priv(devlink_port->devlink); struct mlxsw_core *mlxsw_core = devlink_priv(devlink_port->devlink);
struct mlxsw_driver *mlxsw_driver = mlxsw_core->driver; struct mlxsw_driver *mlxsw_driver = mlxsw_core->driver;
......
...@@ -144,7 +144,8 @@ nfp_devlink_sb_pool_get(struct devlink *devlink, unsigned int sb_index, ...@@ -144,7 +144,8 @@ nfp_devlink_sb_pool_get(struct devlink *devlink, unsigned int sb_index,
static int static int
nfp_devlink_sb_pool_set(struct devlink *devlink, unsigned int sb_index, nfp_devlink_sb_pool_set(struct devlink *devlink, unsigned int sb_index,
u16 pool_index, u16 pool_index,
u32 size, enum devlink_sb_threshold_type threshold_type) u32 size, enum devlink_sb_threshold_type threshold_type,
struct netlink_ext_ack *extack)
{ {
struct nfp_pf *pf = devlink_priv(devlink); struct nfp_pf *pf = devlink_priv(devlink);
......
...@@ -491,13 +491,14 @@ struct devlink_ops { ...@@ -491,13 +491,14 @@ struct devlink_ops {
struct devlink_sb_pool_info *pool_info); struct devlink_sb_pool_info *pool_info);
int (*sb_pool_set)(struct devlink *devlink, unsigned int sb_index, int (*sb_pool_set)(struct devlink *devlink, unsigned int sb_index,
u16 pool_index, u32 size, u16 pool_index, u32 size,
enum devlink_sb_threshold_type threshold_type); enum devlink_sb_threshold_type threshold_type,
struct netlink_ext_ack *extack);
int (*sb_port_pool_get)(struct devlink_port *devlink_port, int (*sb_port_pool_get)(struct devlink_port *devlink_port,
unsigned int sb_index, u16 pool_index, unsigned int sb_index, u16 pool_index,
u32 *p_threshold); u32 *p_threshold);
int (*sb_port_pool_set)(struct devlink_port *devlink_port, int (*sb_port_pool_set)(struct devlink_port *devlink_port,
unsigned int sb_index, u16 pool_index, unsigned int sb_index, u16 pool_index,
u32 threshold); u32 threshold, struct netlink_ext_ack *extack);
int (*sb_tc_pool_bind_get)(struct devlink_port *devlink_port, int (*sb_tc_pool_bind_get)(struct devlink_port *devlink_port,
unsigned int sb_index, unsigned int sb_index,
u16 tc_index, u16 tc_index,
...@@ -507,7 +508,8 @@ struct devlink_ops { ...@@ -507,7 +508,8 @@ struct devlink_ops {
unsigned int sb_index, unsigned int sb_index,
u16 tc_index, u16 tc_index,
enum devlink_sb_pool_type pool_type, enum devlink_sb_pool_type pool_type,
u16 pool_index, u32 threshold); u16 pool_index, u32 threshold,
struct netlink_ext_ack *extack);
int (*sb_occ_snapshot)(struct devlink *devlink, int (*sb_occ_snapshot)(struct devlink *devlink,
unsigned int sb_index); unsigned int sb_index);
int (*sb_occ_max_clear)(struct devlink *devlink, int (*sb_occ_max_clear)(struct devlink *devlink,
......
...@@ -1047,14 +1047,15 @@ static int devlink_nl_cmd_sb_pool_get_dumpit(struct sk_buff *msg, ...@@ -1047,14 +1047,15 @@ static int devlink_nl_cmd_sb_pool_get_dumpit(struct sk_buff *msg,
static int devlink_sb_pool_set(struct devlink *devlink, unsigned int sb_index, static int devlink_sb_pool_set(struct devlink *devlink, unsigned int sb_index,
u16 pool_index, u32 size, u16 pool_index, u32 size,
enum devlink_sb_threshold_type threshold_type) enum devlink_sb_threshold_type threshold_type,
struct netlink_ext_ack *extack)
{ {
const struct devlink_ops *ops = devlink->ops; const struct devlink_ops *ops = devlink->ops;
if (ops->sb_pool_set) if (ops->sb_pool_set)
return ops->sb_pool_set(devlink, sb_index, pool_index, return ops->sb_pool_set(devlink, sb_index, pool_index,
size, threshold_type); size, threshold_type, extack);
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
...@@ -1082,7 +1083,8 @@ static int devlink_nl_cmd_sb_pool_set_doit(struct sk_buff *skb, ...@@ -1082,7 +1083,8 @@ static int devlink_nl_cmd_sb_pool_set_doit(struct sk_buff *skb,
size = nla_get_u32(info->attrs[DEVLINK_ATTR_SB_POOL_SIZE]); size = nla_get_u32(info->attrs[DEVLINK_ATTR_SB_POOL_SIZE]);
return devlink_sb_pool_set(devlink, devlink_sb->index, return devlink_sb_pool_set(devlink, devlink_sb->index,
pool_index, size, threshold_type); pool_index, size, threshold_type,
info->extack);
} }
static int devlink_nl_sb_port_pool_fill(struct sk_buff *msg, static int devlink_nl_sb_port_pool_fill(struct sk_buff *msg,
...@@ -1243,14 +1245,15 @@ static int devlink_nl_cmd_sb_port_pool_get_dumpit(struct sk_buff *msg, ...@@ -1243,14 +1245,15 @@ static int devlink_nl_cmd_sb_port_pool_get_dumpit(struct sk_buff *msg,
static int devlink_sb_port_pool_set(struct devlink_port *devlink_port, static int devlink_sb_port_pool_set(struct devlink_port *devlink_port,
unsigned int sb_index, u16 pool_index, unsigned int sb_index, u16 pool_index,
u32 threshold) u32 threshold,
struct netlink_ext_ack *extack)
{ {
const struct devlink_ops *ops = devlink_port->devlink->ops; const struct devlink_ops *ops = devlink_port->devlink->ops;
if (ops->sb_port_pool_set) if (ops->sb_port_pool_set)
return ops->sb_port_pool_set(devlink_port, sb_index, return ops->sb_port_pool_set(devlink_port, sb_index,
pool_index, threshold); pool_index, threshold, extack);
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
...@@ -1273,7 +1276,7 @@ static int devlink_nl_cmd_sb_port_pool_set_doit(struct sk_buff *skb, ...@@ -1273,7 +1276,7 @@ static int devlink_nl_cmd_sb_port_pool_set_doit(struct sk_buff *skb,
threshold = nla_get_u32(info->attrs[DEVLINK_ATTR_SB_THRESHOLD]); threshold = nla_get_u32(info->attrs[DEVLINK_ATTR_SB_THRESHOLD]);
return devlink_sb_port_pool_set(devlink_port, devlink_sb->index, return devlink_sb_port_pool_set(devlink_port, devlink_sb->index,
pool_index, threshold); pool_index, threshold, info->extack);
} }
static int static int
...@@ -1472,7 +1475,8 @@ devlink_nl_cmd_sb_tc_pool_bind_get_dumpit(struct sk_buff *msg, ...@@ -1472,7 +1475,8 @@ devlink_nl_cmd_sb_tc_pool_bind_get_dumpit(struct sk_buff *msg,
static int devlink_sb_tc_pool_bind_set(struct devlink_port *devlink_port, static int devlink_sb_tc_pool_bind_set(struct devlink_port *devlink_port,
unsigned int sb_index, u16 tc_index, unsigned int sb_index, u16 tc_index,
enum devlink_sb_pool_type pool_type, enum devlink_sb_pool_type pool_type,
u16 pool_index, u32 threshold) u16 pool_index, u32 threshold,
struct netlink_ext_ack *extack)
{ {
const struct devlink_ops *ops = devlink_port->devlink->ops; const struct devlink_ops *ops = devlink_port->devlink->ops;
...@@ -1480,7 +1484,7 @@ static int devlink_sb_tc_pool_bind_set(struct devlink_port *devlink_port, ...@@ -1480,7 +1484,7 @@ static int devlink_sb_tc_pool_bind_set(struct devlink_port *devlink_port,
if (ops->sb_tc_pool_bind_set) if (ops->sb_tc_pool_bind_set)
return ops->sb_tc_pool_bind_set(devlink_port, sb_index, return ops->sb_tc_pool_bind_set(devlink_port, sb_index,
tc_index, pool_type, tc_index, pool_type,
pool_index, threshold); pool_index, threshold, extack);
return -EOPNOTSUPP; return -EOPNOTSUPP;
} }
...@@ -1515,7 +1519,7 @@ static int devlink_nl_cmd_sb_tc_pool_bind_set_doit(struct sk_buff *skb, ...@@ -1515,7 +1519,7 @@ static int devlink_nl_cmd_sb_tc_pool_bind_set_doit(struct sk_buff *skb,
threshold = nla_get_u32(info->attrs[DEVLINK_ATTR_SB_THRESHOLD]); threshold = nla_get_u32(info->attrs[DEVLINK_ATTR_SB_THRESHOLD]);
return devlink_sb_tc_pool_bind_set(devlink_port, devlink_sb->index, return devlink_sb_tc_pool_bind_set(devlink_port, devlink_sb->index,
tc_index, pool_type, tc_index, pool_type,
pool_index, threshold); pool_index, threshold, info->extack);
} }
static int devlink_nl_cmd_sb_occ_snapshot_doit(struct sk_buff *skb, static int devlink_nl_cmd_sb_occ_snapshot_doit(struct sk_buff *skb,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment