Re: [PATCH 2/4] nvmem: core: allow nvmem_cell_post_process_t callbacks to adjust buffer

From: Rafał Miłecki
Date: Thu Mar 09 2023 - 06:59:03 EST


On 2023-03-09 12:44, Srinivas Kandagatla wrote:
On 09/03/2023 11:23, Miquel Raynal wrote:
Hi Srinivas,

srinivas.kandagatla@xxxxxxxxxx wrote on Thu, 9 Mar 2023 10:53:07 +0000:

On 09/03/2023 10:32, Miquel Raynal wrote:
Hi Srinivas,

srinivas.kandagatla@xxxxxxxxxx wrote on Thu, 9 Mar 2023 10:12:24 +0000:

On 22/02/2023 17:22, Rafał Miłecki wrote:
@@ -1791,11 +1792,15 @@ ssize_t nvmem_device_cell_read(struct nvmem_device *nvmem,
if (!nvmem)
return -EINVAL;
> + /* Cells with read_post_process hook may realloc buffer we can't allow here */
+ if (info->read_post_process)
+ return -EINVAL;
This should probably go in 1/4 patch. Other than that series looks good to me.

FYI patch 1/4 is also carried by the nvmem-layouts series, so it's
probably best to keep these 2 patches separated to simplify the merging.
that is intermediate thing, but Ideally this change belongs to 1/4 patch, so once I apply these patches then we can always rebase layout series on top of nvmem-next

Well, I still don't see the need for this patch because we have no use
for it *after* the introduction of layouts. Yes in some cases changing
the size of a cell might maybe be needed, but right now the use case is
to provide a MAC address, we know beforehand the size of the cell, so
there is no need, currently, for this hack.

Am confused, should I ignore this series ?

I'm confused no less.

I think we have 3 different opinions and no agreement on how to proceed.


Rafał (me):
NVMEM cells should be registered as they are in the raw format. No size
adjustments should happen while registering them. If NVMEM cell requires
some read post-processing then its size should be adjusted *while*
reading.


Michael:
.read_post_process() should be realloc the buffer


Miquel:
While registering NVMEM cell its size should be already adjusted to
match what .read_post_process() is about to return.


I'm really sorry if I got anyone's view wrong.