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

Rafał Miłecki
2023-03-09T11:52:52Z

On 2023-03-09 12:44, Srinivas Kandagatla wrote:
> On 09/03/2023 11:23, Miquel Raynal wrote:
>> Hi Srinivas,
>>
>> srinivas.kandagatla@linaro.org wrote on Thu, 9 Mar 2023 10:53:07
>> +0000:
>>
>>> On 09/03/2023 10:32, Miquel Raynal wrote:
>>>> Hi Srinivas,
>>>>
>>>> srinivas.kandagatla@linaro.org 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.