On Wed, May 21, 2025 at 01:47:40PM +0100, shiju.jose@xxxxxxxxxx wrote: > From: Shiju Jose <shiju.jose@xxxxxxxxxx> > > 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: Dan Williams <dan.j.williams@xxxxxxxxx> > Reviewed-by: Dave Jiang <dave.jiang@xxxxxxxxx> > Reviewed-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > Signed-off-by: Shiju Jose <shiju.jose@xxxxxxxxxx> Reviewed-by: Fan Ni <fan.ni@xxxxxxxxxxx> > --- > drivers/cxl/core/core.h | 2 ++ > drivers/cxl/core/features.c | 17 +++++++---------- > 2 files changed, 9 insertions(+), 10 deletions(-) > > diff --git a/drivers/cxl/core/core.h b/drivers/cxl/core/core.h > index 17b692eb3257..613cce5c4f7b 100644 > --- a/drivers/cxl/core/core.h > +++ b/drivers/cxl/core/core.h > @@ -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, > diff --git a/drivers/cxl/core/features.c b/drivers/cxl/core/features.c > index 1498e2369c37..a83a2214a136 100644 > --- a/drivers/cxl/core/features.c > +++ b/drivers/cxl/core/features.c > @@ -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; > > -- > 2.43.0 > -- Fan Ni (From gmail)