RE: [PATCH v19 07/15] cxl: Add helper function to retrieve a feature entry

Shiju Jose
2025-02-11T20:46:17Z

>-----Original Message-----
>From: Dave Jiang <dave.jiang@intel.com>
>Sent: 11 February 2025 02:40
>To: Shiju Jose <shiju.jose@huawei.com>; linux-edac@vger.kernel.org; linux-
>cxl@vger.kernel.org; linux-acpi@vger.kernel.org; linux-mm@kvack.org; linux-
>kernel@vger.kernel.org
>Cc: linux-doc@vger.kernel.org; bp@alien8.de; tony.luck@intel.com;
>rafael@kernel.org; lenb@kernel.org; mchehab@kernel.org;
>dan.j.williams@intel.com; dave@stgolabs.net; Jonathan Cameron
><jonathan.cameron@huawei.com>; alison.schofield@intel.com;
>vishal.l.verma@intel.com; ira.weiny@intel.com; david@redhat.com;
>Vilas.Sridharan@amd.com; leo.duran@amd.com; Yazen.Ghannam@amd.com;
>rientjes@google.com; jiaqiyan@google.com; Jon.Grimm@amd.com;
>dave.hansen@linux.intel.com; naoya.horiguchi@nec.com;
>james.morse@arm.com; jthoughton@google.com; somasundaram.a@hpe.com;
>erdemaktas@google.com; pgonda@google.com; duenwen@google.com;
>gthelen@google.com; wschwartz@amperecomputing.com;
>dferguson@amperecomputing.com; wbs@os.amperecomputing.com;
>nifan.cxl@gmail.com; tanxiaofei <tanxiaofei@huawei.com>; Zengtao (B)
><prime.zeng@hisilicon.com>; Roberto Sassu <roberto.sassu@huawei.com>;
>kangkang.shen@futurewei.com; wanghuiqiang <wanghuiqiang@huawei.com>;
>Linuxarm <linuxarm@huawei.com>
>Subject: Re: [PATCH v19 07/15] cxl: Add helper function to retrieve a feature
>entry
>
>
>
>On 2/7/25 7:44 AM, shiju.jose@huawei.com wrote:
>> From: Shiju Jose <shiju.jose@huawei.com>
>>
>> Add helper function to retrieve a feature entry from the supported
>> features list, if supported.
>>
>> Signed-off-by: Shiju Jose <shiju.jose@huawei.com>
>> ---
>> drivers/cxl/core/features.c | 21 +++++++++++++++++++++
>> include/cxl/features.h | 2 ++
>> 2 files changed, 23 insertions(+)
>>
>> diff --git a/drivers/cxl/core/features.c b/drivers/cxl/core/features.c
>> index 5f64185a5c7a..bf175e69cda1 100644
>> --- a/drivers/cxl/core/features.c
>> +++ b/drivers/cxl/core/features.c
>> @@ -43,6 +43,27 @@ bool is_cxl_feature_exclusive(struct cxl_feat_entry
>> *entry) } EXPORT_SYMBOL_NS_GPL(is_cxl_feature_exclusive, "CXL");
>>
>> +struct cxl_feat_entry *cxl_get_feature_entry(struct cxl_memdev *cxlmd,
>> + const uuid_t *feat_uuid)
>> +{
>> + struct cxl_features_state *cxlfs = cxlmd->cxlfs;
>> + struct cxl_feat_entry *feat_entry;
>> + int count;
>> +
>> + /*
>> + * Retrieve the feature entry from the supported features list,
>> + * if the feature is supported.
>> + */
>> + feat_entry = cxlfs->entries;
>> + for (count = 0; count < cxlfs->num_features; count++, feat_entry++) {
>> + if (uuid_equal(&feat_entry->uuid, feat_uuid))
>> + return feat_entry;
>> + }
>> +
>> + return ERR_PTR(-ENOENT);
>> +}
>> +EXPORT_SYMBOL_NS_GPL(cxl_get_feature_entry, "CXL");
>
>You probably don't need this if the memfeature code are in CXL core.

Hi Dave,

You are right. At present, EXPORT_SYMBOL_NS_GPL(cxl_get_feature_entry) is not required.

>
>DJ
>
>> +
>> 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/include/cxl/features.h b/include/cxl/features.h index
>> e52d0573f504..563d966beee5 100644
>> --- a/include/cxl/features.h
>> +++ b/include/cxl/features.h
>> @@ -68,6 +68,8 @@ struct cxl_features_state { };
>>
>> struct cxl_mailbox;
>> +struct cxl_feat_entry *cxl_get_feature_entry(struct cxl_memdev *cxlmd,
>> + const uuid_t *feat_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,
>
>

Thanks,
Shiju