From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752594AbcBEJbO (ORCPT ); Fri, 5 Feb 2016 04:31:14 -0500 Received: from down.free-electrons.com ([37.187.137.238]:51227 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752324AbcBEJbK (ORCPT ); Fri, 5 Feb 2016 04:31:10 -0500 Date: Fri, 5 Feb 2016 10:31:06 +0100 From: Boris Brezillon To: David Woodhouse , Brian Norris , linux-mtd@lists.infradead.org Cc: Daniel Mack , Haojian Zhuang , Robert Jarzmik , Kukjin Kim , Krzysztof Kozlowski , linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Ralf Baechle , linux-mips@linux-mips.org, Josh Wu , Ezequiel Garcia , Maxime Ripard , Chen-Yu Tsai , linux-sunxi@googlegroups.com, Stefan Agner , Kyungmin Park , Greg Kroah-Hartman , devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, punnaiah choudary kalluri , Priit Laes Subject: Re: [PATCH v2 07/51] mtd: nand: core: use mtd_ooblayout_xxx() helpers where appropriate Message-ID: <20160205103106.53710c48@bbrezillon> In-Reply-To: <1454580434-32078-8-git-send-email-boris.brezillon@free-electrons.com> References: <1454580434-32078-1-git-send-email-boris.brezillon@free-electrons.com> <1454580434-32078-8-git-send-email-boris.brezillon@free-electrons.com> X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.27; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 4 Feb 2016 11:06:30 +0100 Boris Brezillon wrote: > The mtd_ooblayout_xxx() helper functions have been added to avoid direct > accesses to the ecclayout field, and thus ease for future reworks. > Use these helpers in all places where the oobfree[] and eccpos[] arrays > where directly accessed. > > Signed-off-by: Boris Brezillon > --- > drivers/mtd/nand/nand_base.c | 169 ++++++++++++++++++------------------------- > drivers/mtd/nand/nand_bch.c | 3 +- > 2 files changed, 74 insertions(+), 98 deletions(-) > > diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c > index 572369d..e01a9b5 100644 > --- a/drivers/mtd/nand/nand_base.c > +++ b/drivers/mtd/nand/nand_base.c [...] > @@ -4116,7 +4092,6 @@ static bool nand_ecc_strength_good(struct mtd_info *mtd) > */ > int nand_scan_tail(struct mtd_info *mtd) > { > - int i; > struct nand_chip *chip = mtd_to_nand(mtd); > struct nand_ecc_ctrl *ecc = &chip->ecc; > struct nand_buffers *nbuf; > @@ -4315,9 +4290,9 @@ int nand_scan_tail(struct mtd_info *mtd) > * The number of bytes available for a client to place data into > * the out of band area. > */ > - mtd->oobavail = 0; > - for (i = 0; ecc->layout->oobfree[i].length; i++) > - mtd->oobavail += ecc->layout->oobfree[i].length; > + mtd->oobavail = mtd_ooblayout_count_freebytes(mtd); We should call that after setting the mtd->ecclayout field. > + if (mtd->oobavail < 0) > + mtd->oobavail = 0; > > /* ECC sanity check: warn if it's too weak */ > if (!nand_ecc_strength_good(mtd)) -- Boris Brezillon, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com