Commit f76e0bbc authored by Shiju Jose's avatar Shiju Jose Committed by Dave Jiang
Browse files

cxl: Update prototype of function get_support_feature_info()



Add following changes to function get_support_feature_info()
1. Make generic to share between cxl-fwctl and cxl-edac paths.
2. Rename get_support_feature_info() to cxl_feature_info()
3. Change parameter const struct fwctl_rpc_cxl *rpc_in to
   const uuid_t *uuid.

Suggested-by: default avatarDan Williams <dan.j.williams@intel.com>
Reviewed-by: default avatarDave Jiang <dave.jiang@intel.com>
Reviewed-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: default avatarShiju Jose <shiju.jose@huawei.com>
Reviewed-by: default avatarFan Ni <fan.ni@samsung.com>
Reviewed-by: default avatarAlison Schofield <alison.schofield@intel.com>
Acked-by: default avatarDan Williams <dan.j.williams@intel.com>
Link: https://patch.msgid.link/20250521124749.817-3-shiju.jose@huawei.com


Signed-off-by: default avatarDave Jiang <dave.jiang@intel.com>
parent ee4f0324
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -124,6 +124,8 @@ int cxl_acpi_get_extended_linear_cache_size(struct resource *backing_res,
					    int nid, resource_size_t *size);

#ifdef CONFIG_CXL_FEATURES
struct cxl_feat_entry *
cxl_feature_info(struct cxl_features_state *cxlfs, const uuid_t *uuid);
size_t cxl_get_feature(struct cxl_mailbox *cxl_mbox, const uuid_t *feat_uuid,
		       enum cxl_get_feat_selection selection,
		       void *feat_out, size_t feat_out_size, u16 offset,
+7 −10
Original line number Diff line number Diff line
@@ -355,17 +355,11 @@ static void cxlctl_close_uctx(struct fwctl_uctx *uctx)
{
}

static struct cxl_feat_entry *
get_support_feature_info(struct cxl_features_state *cxlfs,
			 const struct fwctl_rpc_cxl *rpc_in)
struct cxl_feat_entry *
cxl_feature_info(struct cxl_features_state *cxlfs,
		 const uuid_t *uuid)
{
	struct cxl_feat_entry *feat;
	const uuid_t *uuid;

	if (rpc_in->op_size < sizeof(uuid))
		return ERR_PTR(-EINVAL);

	uuid = &rpc_in->set_feat_in.uuid;

	for (int i = 0; i < cxlfs->entries->num_features; i++) {
		feat = &cxlfs->entries->ent[i];
@@ -547,7 +541,10 @@ static bool cxlctl_validate_set_features(struct cxl_features_state *cxlfs,
	struct cxl_feat_entry *feat;
	u32 flags;

	feat = get_support_feature_info(cxlfs, rpc_in);
	if (rpc_in->op_size < sizeof(uuid_t))
		return ERR_PTR(-EINVAL);

	feat = cxl_feature_info(cxlfs, &rpc_in->set_feat_in.uuid);
	if (IS_ERR(feat))
		return false;