Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp3067408imm; Tue, 4 Sep 2018 14:59:58 -0700 (PDT) X-Google-Smtp-Source: ANB0VdYsdkXsV8DUWb188Jf4i1SuGHq1wpC6aElNFWCuMKFdJUIcZ1xk42gHXFq7DXRSjL8gdooJ X-Received: by 2002:a62:90d4:: with SMTP id q81-v6mr36965478pfk.37.1536098398087; Tue, 04 Sep 2018 14:59:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536098398; cv=none; d=google.com; s=arc-20160816; b=kk7OHObRYrpDv9xhcqdxKtvQW+JQ5Mv55KMyG017J4XWeqiOCag0J2rWJ/GIulOLg6 zEcmK+F9Sod7F+TEoh7go32HwCxjek6Iin6s5oAvzKsUmEw7yU/btf77lsDClIRc99sr 8mnGW9ONW2tBv647tfcJt3Gy6G+AQ4iS8CildY3OQtIAifgdeoCdOIca5AuG2HUxyeQf 9SFDkUXmMzrzCA2lDyDiVtSJySl84XiMDwogY543f1AAVy2js+F48lXTlanxdFWIHmcL mEGJdAHd4WtmyY2ig3G9FcCUcUqMy6n5yy3WtpwbDj8/4OvABi+roiHT0djpNOj3KtiK goOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :organization:references:in-reply-to:message-id:subject:cc:to:from :date:arc-authentication-results; bh=RQd+IYehRLovLQOwPAUjnnxx+BaTiSMGBCZhAw3/TDE=; b=wLEiV4XMrBNLYs/OFOLa93Dy6k7gBTyTOB5MBTkePCrtDcqc5tyyTMzLM4lJKa3zhA 8WaT8aEPWGRmDxazFcZzGsk+KftPwUVuWJd+dFsY/aC+a2zi9YHSRRGx/wsOyjgyoBvY qHWcSu13d+7/BxxM49Qu2HxBK/v73L3rxHQ6tqa92fqO2P+TZaBLsBO0KMn7W8+nCK3C 7BZyAzynaVy5VkRBJVu6Vl9ocz0ixVT2YfEsJk5m8druzaoUMegsEwwi4otHwtxEt8+3 KysWuk879nOszkP0cqW/+jWwn1r+XciLF27HorYv3RLkHpMbEwCjgafB9HfPilE2h3uN KdYQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t190-v6si8604375pfb.344.2018.09.04.14.59.41; Tue, 04 Sep 2018 14:59:58 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727361AbeIECZG convert rfc822-to-8bit (ORCPT + 99 others); Tue, 4 Sep 2018 22:25:06 -0400 Received: from mail.bootlin.com ([62.4.15.54]:54700 "EHLO mail.bootlin.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726909AbeIECZG (ORCPT ); Tue, 4 Sep 2018 22:25:06 -0400 Received: by mail.bootlin.com (Postfix, from userid 110) id A026E20730; Tue, 4 Sep 2018 23:58:02 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mail.bootlin.com X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,SHORTCIRCUIT shortcircuit=ham autolearn=disabled version=3.4.0 Received: from xps13 (unknown [91.224.148.103]) by mail.bootlin.com (Postfix) with ESMTPSA id 1333A207B4; Tue, 4 Sep 2018 23:57:52 +0200 (CEST) Date: Tue, 4 Sep 2018 23:57:50 +0200 From: Miquel Raynal To: "Gustavo A. R. Silva" Cc: Harvey Hunt , Boris Brezillon , Richard Weinberger , David Woodhouse , Brian Norris , Marek Vasut , linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, Kees Cook Subject: Re: [PATCH] mtd: rawnand: jz4780: use struct_size() in devm_kzalloc() Message-ID: <20180904235750.3e34397d@xps13> In-Reply-To: <20180823193332.GA31602@embeddedor.com> References: <20180823193332.GA31602@embeddedor.com> Organization: Bootlin X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Gustavo, "Gustavo A. R. Silva" wrote on Thu, 23 Aug 2018 14:33:32 -0500: > One of the more common cases of allocation size calculations is finding > the size of a structure that has a zero-sized array at the end, along > with memory for some number of elements for that array. For example: > > struct foo { > int stuff; > void *entry[]; > }; > > instance = devm_kzalloc(dev, sizeof(struct foo) + sizeof(void *) * count, GFP_KERNEL); > > Instead of leaving these open-coded and prone to type mistakes, we can > now use the new struct_size() helper: > > instance = devm_kzalloc(dev, struct_size(instance, entry, count), GFP_KERNEL); > > Signed-off-by: Gustavo A. R. Silva > --- > drivers/mtd/nand/raw/jz4780_nand.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/mtd/nand/raw/jz4780_nand.c b/drivers/mtd/nand/raw/jz4780_nand.c > index db4fa60..ac62395 100644 > --- a/drivers/mtd/nand/raw/jz4780_nand.c > +++ b/drivers/mtd/nand/raw/jz4780_nand.c > @@ -352,7 +352,7 @@ static int jz4780_nand_probe(struct platform_device *pdev) > return -ENODEV; > } > > - nfc = devm_kzalloc(dev, sizeof(*nfc) + (sizeof(nfc->cs[0]) * num_banks), GFP_KERNEL); > + nfc = devm_kzalloc(dev, struct_size(nfc, cs, num_banks), GFP_KERNEL); > if (!nfc) > return -ENOMEM; > Applied to nand/next. Thanks, Miquèl