Commit 5625ca56 authored by Mateusz Polchlopek's avatar Mateusz Polchlopek Committed by Tony Nguyen

devlink: extend devlink_param *set pointer

Extend devlink_param *set function pointer to take extack as a param.
Sometimes it is needed to pass information to the end user from set
function. It is more proper to use for that netlink instead of passing
message to dmesg.
Reviewed-by: default avatarJiri Pirko <jiri@nvidia.com>
Reviewed-by: default avatarPrzemek Kitszel <przemyslaw.kitszel@intel.com>
Signed-off-by: default avatarMateusz Polchlopek <mateusz.polchlopek@intel.com>
Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
parent c51db4ac
...@@ -4,7 +4,8 @@ ...@@ -4,7 +4,8 @@
#include "otx2_cpt_devlink.h" #include "otx2_cpt_devlink.h"
static int otx2_cpt_dl_egrp_create(struct devlink *dl, u32 id, static int otx2_cpt_dl_egrp_create(struct devlink *dl, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct otx2_cpt_devlink *cpt_dl = devlink_priv(dl); struct otx2_cpt_devlink *cpt_dl = devlink_priv(dl);
struct otx2_cptpf_dev *cptpf = cpt_dl->cptpf; struct otx2_cptpf_dev *cptpf = cpt_dl->cptpf;
...@@ -13,7 +14,8 @@ static int otx2_cpt_dl_egrp_create(struct devlink *dl, u32 id, ...@@ -13,7 +14,8 @@ static int otx2_cpt_dl_egrp_create(struct devlink *dl, u32 id,
} }
static int otx2_cpt_dl_egrp_delete(struct devlink *dl, u32 id, static int otx2_cpt_dl_egrp_delete(struct devlink *dl, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct otx2_cpt_devlink *cpt_dl = devlink_priv(dl); struct otx2_cpt_devlink *cpt_dl = devlink_priv(dl);
struct otx2_cptpf_dev *cptpf = cpt_dl->cptpf; struct otx2_cptpf_dev *cptpf = cpt_dl->cptpf;
...@@ -45,7 +47,8 @@ static int otx2_cpt_dl_t106_mode_get(struct devlink *dl, u32 id, ...@@ -45,7 +47,8 @@ static int otx2_cpt_dl_t106_mode_get(struct devlink *dl, u32 id,
} }
static int otx2_cpt_dl_t106_mode_set(struct devlink *dl, u32 id, static int otx2_cpt_dl_t106_mode_set(struct devlink *dl, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct otx2_cpt_devlink *cpt_dl = devlink_priv(dl); struct otx2_cpt_devlink *cpt_dl = devlink_priv(dl);
struct otx2_cptpf_dev *cptpf = cpt_dl->cptpf; struct otx2_cptpf_dev *cptpf = cpt_dl->cptpf;
......
...@@ -256,7 +256,8 @@ int pdsc_dl_flash_update(struct devlink *dl, ...@@ -256,7 +256,8 @@ int pdsc_dl_flash_update(struct devlink *dl,
int pdsc_dl_enable_get(struct devlink *dl, u32 id, int pdsc_dl_enable_get(struct devlink *dl, u32 id,
struct devlink_param_gset_ctx *ctx); struct devlink_param_gset_ctx *ctx);
int pdsc_dl_enable_set(struct devlink *dl, u32 id, int pdsc_dl_enable_set(struct devlink *dl, u32 id,
struct devlink_param_gset_ctx *ctx); struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack);
int pdsc_dl_enable_validate(struct devlink *dl, u32 id, int pdsc_dl_enable_validate(struct devlink *dl, u32 id,
union devlink_param_value val, union devlink_param_value val,
struct netlink_ext_ack *extack); struct netlink_ext_ack *extack);
......
...@@ -37,7 +37,8 @@ int pdsc_dl_enable_get(struct devlink *dl, u32 id, ...@@ -37,7 +37,8 @@ int pdsc_dl_enable_get(struct devlink *dl, u32 id,
} }
int pdsc_dl_enable_set(struct devlink *dl, u32 id, int pdsc_dl_enable_set(struct devlink *dl, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct pdsc *pdsc = devlink_priv(dl); struct pdsc *pdsc = devlink_priv(dl);
struct pdsc_viftype *vt_entry; struct pdsc_viftype *vt_entry;
......
...@@ -1096,7 +1096,8 @@ static int bnxt_dl_nvm_param_get(struct devlink *dl, u32 id, ...@@ -1096,7 +1096,8 @@ static int bnxt_dl_nvm_param_get(struct devlink *dl, u32 id,
} }
static int bnxt_dl_nvm_param_set(struct devlink *dl, u32 id, static int bnxt_dl_nvm_param_set(struct devlink *dl, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct bnxt *bp = bnxt_get_bp_from_dl(dl); struct bnxt *bp = bnxt_get_bp_from_dl(dl);
struct hwrm_nvm_set_variable_input *req; struct hwrm_nvm_set_variable_input *req;
...@@ -1145,7 +1146,8 @@ static int bnxt_remote_dev_reset_get(struct devlink *dl, u32 id, ...@@ -1145,7 +1146,8 @@ static int bnxt_remote_dev_reset_get(struct devlink *dl, u32 id,
} }
static int bnxt_remote_dev_reset_set(struct devlink *dl, u32 id, static int bnxt_remote_dev_reset_set(struct devlink *dl, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct bnxt *bp = bnxt_get_bp_from_dl(dl); struct bnxt *bp = bnxt_get_bp_from_dl(dl);
int rc; int rc;
......
...@@ -1144,9 +1144,9 @@ ice_devlink_enable_roce_get(struct devlink *devlink, u32 id, ...@@ -1144,9 +1144,9 @@ ice_devlink_enable_roce_get(struct devlink *devlink, u32 id,
return 0; return 0;
} }
static int static int ice_devlink_enable_roce_set(struct devlink *devlink, u32 id,
ice_devlink_enable_roce_set(struct devlink *devlink, u32 id, struct devlink_param_gset_ctx *ctx,
struct devlink_param_gset_ctx *ctx) struct netlink_ext_ack *extack)
{ {
struct ice_pf *pf = devlink_priv(devlink); struct ice_pf *pf = devlink_priv(devlink);
bool roce_ena = ctx->val.vbool; bool roce_ena = ctx->val.vbool;
...@@ -1195,9 +1195,9 @@ ice_devlink_enable_iw_get(struct devlink *devlink, u32 id, ...@@ -1195,9 +1195,9 @@ ice_devlink_enable_iw_get(struct devlink *devlink, u32 id,
return 0; return 0;
} }
static int static int ice_devlink_enable_iw_set(struct devlink *devlink, u32 id,
ice_devlink_enable_iw_set(struct devlink *devlink, u32 id, struct devlink_param_gset_ctx *ctx,
struct devlink_param_gset_ctx *ctx) struct netlink_ext_ack *extack)
{ {
struct ice_pf *pf = devlink_priv(devlink); struct ice_pf *pf = devlink_priv(devlink);
bool iw_ena = ctx->val.vbool; bool iw_ena = ctx->val.vbool;
......
...@@ -1202,7 +1202,8 @@ static int rvu_af_dl_dwrr_mtu_validate(struct devlink *devlink, u32 id, ...@@ -1202,7 +1202,8 @@ static int rvu_af_dl_dwrr_mtu_validate(struct devlink *devlink, u32 id,
} }
static int rvu_af_dl_dwrr_mtu_set(struct devlink *devlink, u32 id, static int rvu_af_dl_dwrr_mtu_set(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct rvu_devlink *rvu_dl = devlink_priv(devlink); struct rvu_devlink *rvu_dl = devlink_priv(devlink);
struct rvu *rvu = rvu_dl->rvu; struct rvu *rvu = rvu_dl->rvu;
...@@ -1256,7 +1257,8 @@ static int rvu_af_npc_exact_feature_get(struct devlink *devlink, u32 id, ...@@ -1256,7 +1257,8 @@ static int rvu_af_npc_exact_feature_get(struct devlink *devlink, u32 id,
} }
static int rvu_af_npc_exact_feature_disable(struct devlink *devlink, u32 id, static int rvu_af_npc_exact_feature_disable(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct rvu_devlink *rvu_dl = devlink_priv(devlink); struct rvu_devlink *rvu_dl = devlink_priv(devlink);
struct rvu *rvu = rvu_dl->rvu; struct rvu *rvu = rvu_dl->rvu;
...@@ -1310,7 +1312,8 @@ static int rvu_af_dl_npc_mcam_high_zone_percent_get(struct devlink *devlink, u32 ...@@ -1310,7 +1312,8 @@ static int rvu_af_dl_npc_mcam_high_zone_percent_get(struct devlink *devlink, u32
} }
static int rvu_af_dl_npc_mcam_high_zone_percent_set(struct devlink *devlink, u32 id, static int rvu_af_dl_npc_mcam_high_zone_percent_set(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct rvu_devlink *rvu_dl = devlink_priv(devlink); struct rvu_devlink *rvu_dl = devlink_priv(devlink);
struct rvu *rvu = rvu_dl->rvu; struct rvu *rvu = rvu_dl->rvu;
...@@ -1367,7 +1370,8 @@ static int rvu_af_dl_nix_maxlf_get(struct devlink *devlink, u32 id, ...@@ -1367,7 +1370,8 @@ static int rvu_af_dl_nix_maxlf_get(struct devlink *devlink, u32 id,
} }
static int rvu_af_dl_nix_maxlf_set(struct devlink *devlink, u32 id, static int rvu_af_dl_nix_maxlf_set(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct rvu_devlink *rvu_dl = devlink_priv(devlink); struct rvu_devlink *rvu_dl = devlink_priv(devlink);
struct rvu *rvu = rvu_dl->rvu; struct rvu *rvu = rvu_dl->rvu;
......
...@@ -32,7 +32,8 @@ static int otx2_dl_mcam_count_validate(struct devlink *devlink, u32 id, ...@@ -32,7 +32,8 @@ static int otx2_dl_mcam_count_validate(struct devlink *devlink, u32 id,
} }
static int otx2_dl_mcam_count_set(struct devlink *devlink, u32 id, static int otx2_dl_mcam_count_set(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct otx2_devlink *otx2_dl = devlink_priv(devlink); struct otx2_devlink *otx2_dl = devlink_priv(devlink);
struct otx2_nic *pfvf = otx2_dl->pfvf; struct otx2_nic *pfvf = otx2_dl->pfvf;
......
...@@ -185,7 +185,8 @@ static int mlx4_devlink_ierr_reset_get(struct devlink *devlink, u32 id, ...@@ -185,7 +185,8 @@ static int mlx4_devlink_ierr_reset_get(struct devlink *devlink, u32 id,
} }
static int mlx4_devlink_ierr_reset_set(struct devlink *devlink, u32 id, static int mlx4_devlink_ierr_reset_set(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
mlx4_internal_err_reset = ctx->val.vbool; mlx4_internal_err_reset = ctx->val.vbool;
return 0; return 0;
...@@ -202,7 +203,8 @@ static int mlx4_devlink_crdump_snapshot_get(struct devlink *devlink, u32 id, ...@@ -202,7 +203,8 @@ static int mlx4_devlink_crdump_snapshot_get(struct devlink *devlink, u32 id,
} }
static int mlx4_devlink_crdump_snapshot_set(struct devlink *devlink, u32 id, static int mlx4_devlink_crdump_snapshot_set(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct mlx4_priv *priv = devlink_priv(devlink); struct mlx4_priv *priv = devlink_priv(devlink);
struct mlx4_dev *dev = &priv->dev; struct mlx4_dev *dev = &priv->dev;
......
...@@ -1805,7 +1805,8 @@ static int mlx5_esw_vports_init(struct mlx5_eswitch *esw) ...@@ -1805,7 +1805,8 @@ static int mlx5_esw_vports_init(struct mlx5_eswitch *esw)
} }
static int mlx5_devlink_esw_multiport_set(struct devlink *devlink, u32 id, static int mlx5_devlink_esw_multiport_set(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct mlx5_core_dev *dev = devlink_priv(devlink); struct mlx5_core_dev *dev = devlink_priv(devlink);
......
...@@ -2413,7 +2413,8 @@ static int esw_offloads_init_reps(struct mlx5_eswitch *esw) ...@@ -2413,7 +2413,8 @@ static int esw_offloads_init_reps(struct mlx5_eswitch *esw)
} }
static int esw_port_metadata_set(struct devlink *devlink, u32 id, static int esw_port_metadata_set(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct mlx5_core_dev *dev = devlink_priv(devlink); struct mlx5_core_dev *dev = devlink_priv(devlink);
struct mlx5_eswitch *esw = dev->priv.eswitch; struct mlx5_eswitch *esw = dev->priv.eswitch;
......
...@@ -3332,7 +3332,8 @@ static int mlx5_fs_mode_validate(struct devlink *devlink, u32 id, ...@@ -3332,7 +3332,8 @@ static int mlx5_fs_mode_validate(struct devlink *devlink, u32 id,
} }
static int mlx5_fs_mode_set(struct devlink *devlink, u32 id, static int mlx5_fs_mode_set(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct mlx5_core_dev *dev = devlink_priv(devlink); struct mlx5_core_dev *dev = devlink_priv(devlink);
enum mlx5_flow_steering_mode mode; enum mlx5_flow_steering_mode mode;
......
...@@ -52,7 +52,8 @@ static void mlx5_set_fw_rst_ack(struct mlx5_core_dev *dev) ...@@ -52,7 +52,8 @@ static void mlx5_set_fw_rst_ack(struct mlx5_core_dev *dev)
} }
static int mlx5_fw_reset_enable_remote_dev_reset_set(struct devlink *devlink, u32 id, static int mlx5_fw_reset_enable_remote_dev_reset_set(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct mlx5_core_dev *dev = devlink_priv(devlink); struct mlx5_core_dev *dev = devlink_priv(devlink);
struct mlx5_fw_reset *fw_reset; struct mlx5_fw_reset *fw_reset;
......
...@@ -1465,7 +1465,8 @@ mlxsw_sp_acl_tcam_region_rehash_intrvl_get(struct devlink *devlink, u32 id, ...@@ -1465,7 +1465,8 @@ mlxsw_sp_acl_tcam_region_rehash_intrvl_get(struct devlink *devlink, u32 id,
static int static int
mlxsw_sp_acl_tcam_region_rehash_intrvl_set(struct devlink *devlink, u32 id, mlxsw_sp_acl_tcam_region_rehash_intrvl_set(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct mlxsw_core *mlxsw_core = devlink_priv(devlink); struct mlxsw_core *mlxsw_core = devlink_priv(devlink);
struct mlxsw_sp_acl_tcam_vregion *vregion; struct mlxsw_sp_acl_tcam_vregion *vregion;
......
...@@ -132,7 +132,8 @@ nfp_devlink_param_u8_get(struct devlink *devlink, u32 id, ...@@ -132,7 +132,8 @@ nfp_devlink_param_u8_get(struct devlink *devlink, u32 id,
static int static int
nfp_devlink_param_u8_set(struct devlink *devlink, u32 id, nfp_devlink_param_u8_set(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
const struct nfp_devlink_param_u8_arg *arg; const struct nfp_devlink_param_u8_arg *arg;
struct nfp_pf *pf = devlink_priv(devlink); struct nfp_pf *pf = devlink_priv(devlink);
......
...@@ -132,7 +132,8 @@ static int qed_dl_param_get(struct devlink *dl, u32 id, ...@@ -132,7 +132,8 @@ static int qed_dl_param_get(struct devlink *dl, u32 id,
} }
static int qed_dl_param_set(struct devlink *dl, u32 id, static int qed_dl_param_set(struct devlink *dl, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct qed_devlink *qed_dl = devlink_priv(dl); struct qed_devlink *qed_dl = devlink_priv(dl);
struct qed_dev *cdev; struct qed_dev *cdev;
......
...@@ -3061,7 +3061,8 @@ static void am65_cpsw_init_port_switch_ale(struct am65_cpsw_port *port) ...@@ -3061,7 +3061,8 @@ static void am65_cpsw_init_port_switch_ale(struct am65_cpsw_port *port)
} }
static int am65_cpsw_dl_switch_mode_set(struct devlink *dl, u32 id, static int am65_cpsw_dl_switch_mode_set(struct devlink *dl, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct am65_cpsw_devlink *dl_priv = devlink_priv(dl); struct am65_cpsw_devlink *dl_priv = devlink_priv(dl);
struct am65_cpsw_common *cpsw = dl_priv->common; struct am65_cpsw_common *cpsw = dl_priv->common;
......
...@@ -1625,7 +1625,8 @@ static int cpsw_dl_switch_mode_get(struct devlink *dl, u32 id, ...@@ -1625,7 +1625,8 @@ static int cpsw_dl_switch_mode_get(struct devlink *dl, u32 id,
} }
static int cpsw_dl_switch_mode_set(struct devlink *dl, u32 id, static int cpsw_dl_switch_mode_set(struct devlink *dl, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct cpsw_devlink *dl_priv = devlink_priv(dl); struct cpsw_devlink *dl_priv = devlink_priv(dl);
struct cpsw_common *cpsw = dl_priv->cpsw; struct cpsw_common *cpsw = dl_priv->cpsw;
...@@ -1762,7 +1763,8 @@ static int cpsw_dl_ale_ctrl_get(struct devlink *dl, u32 id, ...@@ -1762,7 +1763,8 @@ static int cpsw_dl_ale_ctrl_get(struct devlink *dl, u32 id,
} }
static int cpsw_dl_ale_ctrl_set(struct devlink *dl, u32 id, static int cpsw_dl_ale_ctrl_set(struct devlink *dl, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct cpsw_devlink *dl_priv = devlink_priv(dl); struct cpsw_devlink *dl_priv = devlink_priv(dl);
struct cpsw_common *cpsw = dl_priv->cpsw; struct cpsw_common *cpsw = dl_priv->cpsw;
......
...@@ -33,7 +33,8 @@ static int ipc_devlink_get_param(struct devlink *dl, u32 id, ...@@ -33,7 +33,8 @@ static int ipc_devlink_get_param(struct devlink *dl, u32 id,
/* Set the param values for the specific param ID's */ /* Set the param values for the specific param ID's */
static int ipc_devlink_set_param(struct devlink *dl, u32 id, static int ipc_devlink_set_param(struct devlink *dl, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct iosm_devlink *ipc_devlink = devlink_priv(dl); struct iosm_devlink *ipc_devlink = devlink_priv(dl);
......
...@@ -483,7 +483,8 @@ struct devlink_param { ...@@ -483,7 +483,8 @@ struct devlink_param {
int (*get)(struct devlink *devlink, u32 id, int (*get)(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx); struct devlink_param_gset_ctx *ctx);
int (*set)(struct devlink *devlink, u32 id, int (*set)(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx); struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack);
int (*validate)(struct devlink *devlink, u32 id, int (*validate)(struct devlink *devlink, u32 id,
union devlink_param_value val, union devlink_param_value val,
struct netlink_ext_ack *extack); struct netlink_ext_ack *extack);
......
...@@ -1258,7 +1258,8 @@ struct dsa_switch_ops { ...@@ -1258,7 +1258,8 @@ struct dsa_switch_ops {
int dsa_devlink_param_get(struct devlink *dl, u32 id, int dsa_devlink_param_get(struct devlink *dl, u32 id,
struct devlink_param_gset_ctx *ctx); struct devlink_param_gset_ctx *ctx);
int dsa_devlink_param_set(struct devlink *dl, u32 id, int dsa_devlink_param_set(struct devlink *dl, u32 id,
struct devlink_param_gset_ctx *ctx); struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack);
int dsa_devlink_params_register(struct dsa_switch *ds, int dsa_devlink_params_register(struct dsa_switch *ds,
const struct devlink_param *params, const struct devlink_param *params,
size_t params_count); size_t params_count);
......
...@@ -158,11 +158,12 @@ static int devlink_param_get(struct devlink *devlink, ...@@ -158,11 +158,12 @@ static int devlink_param_get(struct devlink *devlink,
static int devlink_param_set(struct devlink *devlink, static int devlink_param_set(struct devlink *devlink,
const struct devlink_param *param, const struct devlink_param *param,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
if (!param->set) if (!param->set)
return -EOPNOTSUPP; return -EOPNOTSUPP;
return param->set(devlink, param->id, ctx); return param->set(devlink, param->id, ctx, extack);
} }
static int static int
...@@ -571,7 +572,7 @@ static int __devlink_nl_cmd_param_set_doit(struct devlink *devlink, ...@@ -571,7 +572,7 @@ static int __devlink_nl_cmd_param_set_doit(struct devlink *devlink,
return -EOPNOTSUPP; return -EOPNOTSUPP;
ctx.val = value; ctx.val = value;
ctx.cmode = cmode; ctx.cmode = cmode;
err = devlink_param_set(devlink, param, &ctx); err = devlink_param_set(devlink, param, &ctx, info->extack);
if (err) if (err)
return err; return err;
} }
......
...@@ -194,7 +194,8 @@ int dsa_devlink_param_get(struct devlink *dl, u32 id, ...@@ -194,7 +194,8 @@ int dsa_devlink_param_get(struct devlink *dl, u32 id,
EXPORT_SYMBOL_GPL(dsa_devlink_param_get); EXPORT_SYMBOL_GPL(dsa_devlink_param_get);
int dsa_devlink_param_set(struct devlink *dl, u32 id, int dsa_devlink_param_set(struct devlink *dl, u32 id,
struct devlink_param_gset_ctx *ctx) struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ {
struct dsa_switch *ds = dsa_devlink_to_ds(dl); struct dsa_switch *ds = dsa_devlink_to_ds(dl);
......
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