RE: [PATCH 07/22] RDMA/irdma: Register an auxiliary driver and implement private channel OPs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> 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.



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux