[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1983025922.01768145102396.JavaMail.epsvc@epcpadp1new>
Date: Fri, 9 Jan 2026 17:16:32 +0530
From: Neeraj Kumar <s.neeraj@...sung.com>
To: Dave Jiang <dave.jiang@...el.com>
Cc: linux-cxl@...r.kernel.org, nvdimm@...ts.linux.dev,
linux-kernel@...r.kernel.org, gost.dev@...sung.com,
a.manzanares@...sung.com, vishak.g@...sung.com, neeraj.kernel@...il.com,
cpgs@...sung.com
Subject: Re: [PATCH V4 03/17] nvdimm/label: Add namespace/region label
support as per LSA 2.1
On 19/11/25 08:51AM, Dave Jiang wrote:
>
>
>On 11/19/25 12:52 AM, Neeraj Kumar wrote:
>> Modify __pmem_label_update() to update region labels into LSA
>>
>> CXL 3.2 Spec mentions CXL LSA 2.1 Namespace Labels at section 9.13.2.5
>> Modified __pmem_label_update() using setter functions to update
>> namespace label as per CXL LSA 2.1
>>
>> Create export routine nd_region_label_update() used for creating
>> region label into LSA. It will be used later from CXL subsystem
>>
>> Signed-off-by: Neeraj Kumar <s.neeraj@...sung.com>
>
>A few nits below, otherwise
>Reviewed-by: Dave Jiang <dave.jiang@...el.com>
>
>
>> ---
>> drivers/nvdimm/label.c | 360 ++++++++++++++++++++++++++------
>> drivers/nvdimm/label.h | 17 +-
>> drivers/nvdimm/namespace_devs.c | 25 ++-
>> drivers/nvdimm/nd.h | 66 ++++++
>> include/linux/libnvdimm.h | 8 +
>> 5 files changed, 406 insertions(+), 70 deletions(-)
>>
>> +static unsigned long find_slot(struct nvdimm_drvdata *ndd,
>> + unsigned long label)
>> +{
>> + unsigned long base;
>> +
>> + base = (unsigned long) nd_label_base(ndd);
>
>No need for space after casting
Fixed it in V5
>
>> + return (label - base) / sizeof_namespace_label(ndd);
>> +}
<snip>
>> +static int __pmem_label_update(struct nd_region *nd_region,
>> + struct nd_mapping *nd_mapping,
>> + struct nd_namespace_pmem *nspm,
>> + int pos, unsigned long flags,
>> + enum label_type ltype)
>> +{
>> + struct nd_interleave_set *nd_set = nd_region->nd_set;
>> + struct nvdimm_drvdata *ndd = to_ndd(nd_mapping);
>> + struct nd_namespace_index *nsindex;
>> + struct nd_label_ent *label_ent;
>> + union nd_lsa_label *lsa_label;
>> + unsigned long *free;
>> + struct device *dev;
>> + u32 nslot, slot;
>> + size_t offset;
>> + int rc;
>> +
>> - nd_dbg_dpa(nd_region, ndd, res, "\n");
>> + lsa_label = to_lsa_label(ndd, slot);
>> + memset(lsa_label, 0, sizeof_namespace_label(ndd));
>> +
>> + switch (ltype) {
>> + case NS_LABEL_TYPE:
>> + dev = &nspm->nsio.common.dev;
>> + rc = namespace_label_update(nd_region, nd_mapping,
>> + nspm, pos, flags, &lsa_label->ns_label,
>> + nsindex, slot);
>> + if (rc)
>> + return rc;
>> +
>> + break;
>> + case RG_LABEL_TYPE:
>> + dev = &nd_region->dev;
>> + region_label_update(nd_region, &lsa_label->region_label,
>> + nd_mapping, pos, flags, slot);
>
>inconsistent tabbing this one vs the case above. Should pick the one that conforms to the rest of this file. And yeah I get it. The tab formatting under nvdimm is different than CXL and it's a pain going between the two.
>
>DJ
Thanks Dave, I have fixed it in V5, Will be sending it soon
Regards,
Neeraj
Powered by blists - more mailing lists