diff mbox series

mtd: rawnand: make rawnand_check_data_only_read_support() work

Message ID 20240514103355.817056-1-s.hauer@pengutronix.de
State New
Headers show
Series mtd: rawnand: make rawnand_check_data_only_read_support() work | expand

Commit Message

Sascha Hauer May 14, 2024, 10:33 a.m. UTC
rawnand_check_data_only_read_support() calls nand_read_data_op() with a
NULL pointer as buffer which will immediately return an error. Allow a
NULL buffer pointer when check_only is requested. This should be safe to
do as nand_read_data_op() has no business in touching the buffer in
check_only mode.

Fixes: 9f820fc0651c ("mtd: rawnand: Check the data only read pattern only once")
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 drivers/mtd/nand/raw/nand_base.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Alexander Dahl May 15, 2024, 8:11 a.m. UTC | #1
Hello Sascha,

Am Tue, May 14, 2024 at 12:33:55PM +0200 schrieb Sascha Hauer:
> rawnand_check_data_only_read_support() calls nand_read_data_op() with a
> NULL pointer as buffer which will immediately return an error. Allow a
> NULL buffer pointer when check_only is requested. This should be safe to
> do as nand_read_data_op() has no business in touching the buffer in
> check_only mode.
> 
> Fixes: 9f820fc0651c ("mtd: rawnand: Check the data only read pattern only once")
> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
>  drivers/mtd/nand/raw/nand_base.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c
> index d7dbbd469b892..a5e7d8deafbbe 100644
> --- a/drivers/mtd/nand/raw/nand_base.c
> +++ b/drivers/mtd/nand/raw/nand_base.c
> @@ -2173,7 +2173,7 @@ EXPORT_SYMBOL_GPL(nand_reset_op);
>  int nand_read_data_op(struct nand_chip *chip, void *buf, unsigned int len,
>  		      bool force_8bit, bool check_only)
>  {
> -	if (!len || !buf)
> +	if (!len || (!buf && !check_only))
>  		return -EINVAL;
>  
>  	if (nand_has_exec_op(chip)) {

A very similar patch has been proposed by Miquèl with
<20240507160546.130255-2-miquel.raynal@bootlin.com> recently. o.O

Greets
Alex

Link: https://lore.kernel.org/linux-mtd/20240507160546.130255-2-miquel.raynal@bootlin.com/
diff mbox series

Patch

diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c
index d7dbbd469b892..a5e7d8deafbbe 100644
--- a/drivers/mtd/nand/raw/nand_base.c
+++ b/drivers/mtd/nand/raw/nand_base.c
@@ -2173,7 +2173,7 @@  EXPORT_SYMBOL_GPL(nand_reset_op);
 int nand_read_data_op(struct nand_chip *chip, void *buf, unsigned int len,
 		      bool force_8bit, bool check_only)
 {
-	if (!len || !buf)
+	if (!len || (!buf && !check_only))
 		return -EINVAL;
 
 	if (nand_has_exec_op(chip)) {