[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240206143711.2410135-2-msp@baylibre.com>
Date: Tue, 6 Feb 2024 15:37:08 +0100
From: Markus Schneider-Pargmann <msp@...libre.com>
To: 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>,
Srinivas Kandagatla <srinivas.kandagatla@...aro.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,
Markus Schneider-Pargmann <msp@...libre.com>
Subject: [PATCH 1/4] nvmem: core: Read into buffers larger than data
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.
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);
}
- memcpy(val, buf, count);
+ memcpy(val, buf, len);
kfree(buf);
nvmem_cell_put(cell);
--
2.43.0
Powered by blists - more mailing lists