From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.bootlin.com ([62.4.15.54]:38181 "EHLO mail.bootlin.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933659AbeFRN6A (ORCPT ); Mon, 18 Jun 2018 09:58:00 -0400 Date: Mon, 18 Jun 2018 15:57:57 +0200 From: Miquel Raynal To: Abhishek Sahu Cc: Boris Brezillon , David Woodhouse , Brian Norris , Marek Vasut , Richard Weinberger , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mtd@lists.infradead.org, Subject: Re: [PATCH] mtd: rawnand: fix return value check for bad block status Message-ID: <20180618155757.6cbe0fae@xps13> In-Reply-To: <1528880556-20348-1-git-send-email-absahu@codeaurora.org> References: <1528880556-20348-1-git-send-email-absahu@codeaurora.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: stable-owner@vger.kernel.org List-ID: Hi Boris, On Wed, 13 Jun 2018 14:32:36 +0530, Abhishek Sahu wrote: > Positive return value from read_oob() is making false BAD > blocks. For some of the NAND controllers, OOB bytes will be > protected with ECC and read_oob() will return number of bitflips. > If there is any bitflip in ECC protected OOB bytes for BAD block > status page, then that block is getting treated as BAD. > > Fixes: c120e75e0e7d ("mtd: nand: use read_oob() instead of cmdfunc() for bad block check") > Cc: > Signed-off-by: Abhishek Sahu > --- > 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 f28c3a5..4a73f73 100644 > --- a/drivers/mtd/nand/raw/nand_base.c > +++ b/drivers/mtd/nand/raw/nand_base.c > @@ -440,7 +440,7 @@ static int nand_block_bad(struct mtd_info *mtd, loff_t ofs) > > for (; page < page_end; page++) { > res = chip->ecc.read_oob(mtd, chip, page); > - if (res) > + if (res < 0) > return res; > > bad = chip->oob_poi[chip->badblockpos]; Reviewed-by: Miquel Raynal I suppose this patch is a good candidate to be part of a future mtd/fixes PR? Regards, Miquèl