Re: [PATCH] mtd: rawnand: fix an error code in nand_setup_interface()

From: Miquel Raynal
Date: Fri Apr 16 2021 - 11:00:46 EST


Hi Dan,

Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote on Wed, 14 Apr 2021
08:56:33 +0300:

> We should return an error code if the timing mode is not acknowledged
> by the NAND chip.

This truly is questionable (and I am not yet decided whether the answer
should be yes or no).

Returning an error here would produce the entire boot sequence to fail,
even though the NAND chip would work in mode 0.

Not returning an error would print the below warning (so the
user/developer is warned) and continue the boot with the slowest
timing interface.

Honestly I would be more in favor of letting things as they are
because I don't think this may be considered as a buggy situation, but I
am open to discussion.

> Fixes: 415ae78ffb5d ("mtd: rawnand: check ONFI timings have been acked by the chip")
> Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> ---
> From static analysis. Not tested.
>
> drivers/mtd/nand/raw/nand_base.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c
> index fb072c444495..d83c0503f96f 100644
> --- a/drivers/mtd/nand/raw/nand_base.c
> +++ b/drivers/mtd/nand/raw/nand_base.c
> @@ -880,6 +880,7 @@ static int nand_setup_interface(struct nand_chip *chip, int chipnr)
> if (tmode_param[0] != chip->best_interface_config->timings.mode) {
> pr_warn("timing mode %d not acknowledged by the NAND chip\n",
> chip->best_interface_config->timings.mode);
> + ret = -EINVAL;
> goto err_reset_chip;
> }
>

Thanks,
Miquèl