Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753371AbdLEKml (ORCPT ); Tue, 5 Dec 2017 05:42:41 -0500 Received: from conssluserg-04.nifty.com ([210.131.2.83]:32895 "EHLO conssluserg-04.nifty.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752974AbdLEKmi (ORCPT ); Tue, 5 Dec 2017 05:42:38 -0500 DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-04.nifty.com vB5AgQtc014385 X-Nifty-SrcIP: [209.85.213.53] X-Google-Smtp-Source: AGs4zMZW+reSzl2Tt4ldOF0c3nOqLTJ/xr2pahpxO0UlSHflDd3hX1eM1v+IzP/a83fo44y63U7vrz90SBWOJ/Tjkxg= MIME-Version: 1.0 In-Reply-To: <20171205112815.0b59ab2d@bbrezillon> References: <1512366470-16772-1-git-send-email-yamada.masahiro@socionext.com> <20171204101043.602ff213@bbrezillon> <20171205112815.0b59ab2d@bbrezillon> From: Masahiro Yamada Date: Tue, 5 Dec 2017 19:41:45 +0900 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] mtd: nand: squash struct nand_buffers into struct nand_chip To: Boris Brezillon Cc: Kamal Dasu , Richard Weinberger , Han Xu , Linux Kernel Mailing List , Marek Vasut , Chen-Yu Tsai , Broadcom Kernel Feedback List , Cyrille Pitchen , linux-mtd , Maxime Ripard , Brian Norris , David Woodhouse , linux-arm-kernel Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1842 Lines: 58 2017-12-05 19:28 GMT+09:00 Boris Brezillon : > On Tue, 5 Dec 2017 19:02:26 +0900 > Masahiro Yamada wrote: > >> Hi Boris, >> >> 2017-12-04 18:10 GMT+09:00 Boris Brezillon >> : >> >> >> } >> >> >> >> if (!(chip->options & NAND_OWN_BUFFERS)) { >> >> - nbuf = kzalloc(sizeof(*nbuf), GFP_KERNEL); >> >> - if (!nbuf) >> >> + chip->ecccalc = kmalloc(mtd->oobsize, GFP_KERNEL); >> >> + if (!chip->ecccalc) >> >> return -ENOMEM; >> >> >> >> - nbuf->ecccalc = kmalloc(mtd->oobsize, GFP_KERNEL); >> >> - if (!nbuf->ecccalc) { >> >> + chip->ecccode = kmalloc(mtd->oobsize, GFP_KERNEL); >> >> + if (!chip->ecccode) { >> >> ret = -ENOMEM; >> >> goto err_free_nbuf; >> >> } >> > >> > Hm, again not directly related to this patch, but I wonder if we >> > couldn't allocate those buffers only when they are really needed. >> > For example, most NAND controllers do the ECC calculation/correct >> > in HW and simply don't need those buffers. >> >> >> The only idea I came up with is to add a new flag, >> but I am not sure if you are happy with it >> because we are removing NAND_OWN_BUFFERS. > > All drivers using ->calc/code_buf are providing a ->correct() and/or > ->calculate() method, so I thought we could make the allocation > dependent on the presence of one of these hooks [1]. > > The only exception is the denali driver, but I think we can patch it > to not use the ->code_buf buffer [2]. Cool! > [1]http://code.bulix.org/2ks7yp-236649 > [2]http://code.bulix.org/sxqx7o-236650 > Thanks! I can issue Acked-by for [2]. -- Best Regards Masahiro Yamada