All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Cc: linux-mtd@lists.infradead.org, oss@buserror.net,
	boris.brezillon@bootlin.com, computersforpeace@gmail.com,
	leoyang.li@nxp.com
Subject: Re: [PATCH] driver: mtd: ifc: increase eccstat array size for ver >= 2.0.0
Date: Wed, 7 Mar 2018 10:46:34 +0100	[thread overview]
Message-ID: <20180307104634.50c8a28a@xps13> (raw)
In-Reply-To: <20180307091656.16378-1-prabhakar.kushwaha@nxp.com>

Hi Prabhakar,

On Wed,  7 Mar 2018 14:46:56 +0530, Prabhakar Kushwaha
<prabhakar.kushwaha@nxp.com> wrote:

> Number of ECC status registers i.e. (ECCSTATx) has been increased
> in IFC version 2.0.0 due to increase in SRAM size.
> 
> Fix the resulting eccstat array overflow.
> 
> Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>

Prefix should be "mtd: rawnand: fsl_ifc: ". It used to be "nand"
instead of "rawnand" but "raw NAND" drivers are moved into a separate
subfolder to make clear separations between families, and the prefix
should follow.

> ---
>  drivers/mtd/nand/fsl_ifc_nand.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/mtd/nand/fsl_ifc_nand.c b/drivers/mtd/nand/fsl_ifc_nand.c
> index 4872a7ba6503..612f0990fa90 100644
> --- a/drivers/mtd/nand/fsl_ifc_nand.c
> +++ b/drivers/mtd/nand/fsl_ifc_nand.c
> @@ -193,7 +193,7 @@ static void fsl_ifc_run_command(struct mtd_info *mtd)
>  	struct fsl_ifc_ctrl *ctrl = priv->ctrl;
>  	struct fsl_ifc_nand_ctrl *nctrl = ifc_nand_ctrl;
>  	struct fsl_ifc_runtime __iomem *ifc = ctrl->rregs;
> -	u32 eccstat[4];
> +	u32 eccstat[8];
>  	int i;
>  
>  	/* set the chip select for NAND Transaction */
> @@ -237,8 +237,14 @@ static void fsl_ifc_run_command(struct mtd_info *mtd)
>  		else
>  			eccstat_regs = ifc->ifc_nand.v1_nand_eccstat;
>  
> -		for (i = sector / 4; i <= sector_end / 4; i++)
> +		for (i = sector / 4; i <= sector_end / 4; i++) {
> +			if (i >= ARRAY_SIZE(eccstat)) {
> +				dev_err(priv->dev, "%s: eccstat small for %d\n",
> +					__func__, i);
> +				return;
> +			}

I suppose this check is here to prevent possible silent overflows
due to further enlargements of the number of ECC status registers, but
I don't think this is the right place to do so.

Actually, the only function in which this array is used is
check_read_ecc() and it does nothing else than looking at one register
in the array at a time. I am pretty sure this function could be
reworked a bit to get rid of the array and use a single "u32 eccstat;".

>  			eccstat[i] = ifc_in32(&eccstat_regs[i]);
> +		}
>  
>  		for (i = sector; i <= sector_end; i++) {
>  			errors = check_read_ecc(mtd, ctrl, eccstat, i);

Thanks,
Miquèl

-- 
Miquel Raynal, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com

  reply	other threads:[~2018-03-07  9:46 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-07  9:16 [PATCH] driver: mtd: ifc: increase eccstat array size for ver >= 2.0.0 Prabhakar Kushwaha
2018-03-07  9:46 ` Miquel Raynal [this message]
2018-03-07 10:17   ` Boris Brezillon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180307104634.50c8a28a@xps13 \
    --to=miquel.raynal@bootlin.com \
    --cc=boris.brezillon@bootlin.com \
    --cc=computersforpeace@gmail.com \
    --cc=leoyang.li@nxp.com \
    --cc=linux-mtd@lists.infradead.org \
    --cc=oss@buserror.net \
    --cc=prabhakar.kushwaha@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.