> Subject: Re: [PATCH 07/22] RDMA/irdma: Register an auxiliary driver and
> implement private channel OPs
>
>
> > +static int irdma_devlink_rsrc_limits_validate(struct devlink *dl, u32 id,
> > + union devlink_param_value val,
> > + struct netlink_ext_ack *extack) {
> > + u8 value = val.vu8;
> > +
> > + if (value > 7) {
> > + NL_SET_ERR_MSG_MOD(extack, "resource limits selector range
> is (0-7)");
> > + return -ERANGE;
> > + }
> > +
> > + return 0;
> > +}
> > +
> > +static int irdma_devlink_enable_roce_validate(struct devlink *dl, u32 id,
> > + union devlink_param_value val,
> > + struct netlink_ext_ack *extack) {
> > + struct irdma_dl_priv *priv = devlink_priv(dl);
> > + bool value = val.vbool;
> > +
> > + if (value && priv->drvdata->hw_ver == IRDMA_GEN_1) {
> > + NL_SET_ERR_MSG_MOD(extack, "RoCE not supported on
> device");
> > + return -EOPNOTSUPP;
> > + }
> > +
> > + return 0;
> > +}
> > +
> > +static int irdma_devlink_upload_ctx_get(struct devlink *devlink, u32 id,
> > + struct devlink_param_gset_ctx *ctx) {
> > + ctx->val.vbool = irdma_upload_context;
> > + return 0;
> > +}
> > +
> > +static int irdma_devlink_upload_ctx_set(struct devlink *devlink, u32 id,
> > + struct devlink_param_gset_ctx *ctx) {
> > + irdma_upload_context = ctx->val.vbool;
> > + return 0;
> > +}
> > +
> > +enum irdma_dl_param_id {
> > + IRDMA_DEVLINK_PARAM_ID_BASE =
> DEVLINK_PARAM_GENERIC_ID_MAX,
> > + IRDMA_DEVLINK_PARAM_ID_LIMITS_SELECTOR,
> > + IRDMA_DEVLINK_PARAM_ID_UPLOAD_CONTEXT,
> > +};
> > +
> > +static const struct devlink_param irdma_devlink_params[] = {
> > +
> DEVLINK_PARAM_DRIVER(IRDMA_DEVLINK_PARAM_ID_LIMITS_SELE
> CTOR,
> > + "resource_limits_selector",
> DEVLINK_PARAM_TYPE_U8,
> > + BIT(DEVLINK_PARAM_CMODE_DRIVERINIT),
> > + NULL, NULL, irdma_devlink_rsrc_limits_validate),
> > +
> DEVLINK_PARAM_DRIVER(IRDMA_DEVLINK_PARAM_ID_UPLOAD_CON
> TEXT,
> > + "upload_context", DEVLINK_PARAM_TYPE_BOOL,
> > + BIT(DEVLINK_PARAM_CMODE_RUNTIME),
> > + irdma_devlink_upload_ctx_get,
> > + irdma_devlink_upload_ctx_set, NULL),
> > + DEVLINK_PARAM_GENERIC(ENABLE_ROCE,
> BIT(DEVLINK_PARAM_CMODE_DRIVERINIT),
> > + NULL, NULL, irdma_devlink_enable_roce_validate),
> > +};
>
> RoCE enable knob is understandable, but others are not explained.
>
OK. That can be fixed.