[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <bffe2a23-d3fc-499d-825a-e2fd3c7a9d7f@linaro.org>
Date: Tue, 6 Feb 2024 22:07:59 +0000
From: Srinivas Kandagatla <srinivas.kandagatla@...aro.org>
To: Markus Schneider-Pargmann <msp@...libre.com>, Nishanth Menon <nm@...com>,
Vignesh Raghavendra <vigneshr@...com>, Tero Kristo <kristo@...nel.org>,
Rob Herring <robh+dt@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Conor Dooley <conor+dt@...nel.org>, Santosh Shilimkar <ssantosh@...nel.org>
Cc: Andrew Davis <afd@...com>, linux-arm-kernel@...ts.infradead.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/4] nvmem: core: Read into buffers larger than data
On 06/02/2024 14:37, Markus Schneider-Pargmann wrote:
> The actual size that nvmem is using internally on a specific platform
> with a specific devicetree may not be known in the consumer code. The
> maximum size may be available at the same time.
>
> Allow the use of larger buffers in nvmem_cell_read_common() by setting
> buffers that are too large to zero before copying into them.
>
Can you explain why can we not use nvmem_cell_read() ?
there is an other thread to add get_size
https://www.spinics.net/lists/kernel/msg5075254.html
> Signed-off-by: Markus Schneider-Pargmann <msp@...libre.com>
> ---
> drivers/nvmem/core.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
> index 980123fb4dde..6fa061ede605 100644
> --- a/drivers/nvmem/core.c
> +++ b/drivers/nvmem/core.c
> @@ -1806,12 +1806,14 @@ static int nvmem_cell_read_common(struct device *dev, const char *cell_id,
> nvmem_cell_put(cell);
> return PTR_ERR(buf);
> }
> - if (len != count) {
> + if (len > count) {
> kfree(buf);
> nvmem_cell_put(cell);
> return -EINVAL;
> + } else if (len < count) {
> + memset(val + len, 0, count - len);
no please.. this really does not belong here.
--srini
> }
> - memcpy(val, buf, count);
> + memcpy(val, buf, len);
> kfree(buf);
> nvmem_cell_put(cell);
>
Powered by blists - more mailing lists