Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp2056289yba; Fri, 17 May 2019 09:40:07 -0700 (PDT) X-Google-Smtp-Source: APXvYqyM5MW5KzkFJz96LvgbEn2JakkO3c7cTfZ7JK3xNktBa2bIhZbwAz1LL9v13ZyojJkvX9e2 X-Received: by 2002:a63:5b5c:: with SMTP id l28mr13948229pgm.158.1558111207788; Fri, 17 May 2019 09:40:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558111207; cv=none; d=google.com; s=arc-20160816; b=xSyZSqKDcWM6PcV/6aEnx2KUMjCV5Y3+cuFK003/B2gZcmxY9MYB9uXj6wkplJQ/kR Vp0Re1Ttl+6eXAZULNFRZFHoup0v/rC8L9a+UhMG6DRxEogqaNutR8MawWaNDT+AiV5i 1i3XNLzn64HBk9aEiKiqT+HgEIUnxjmR661pzZXOdfDOTrWZobfhpqYbHW28wMo1g+nX fwTKM1RvFTBNf8mRfFikjta/UkHtIDnQbkZ+QcZnIQhbx9DX3Il7p0orqmB923gCxMHy /BlVkbNWpsiO/La0xz4Zk8hST/UCZPhheHvffub+nXKJnX2AiEKWWQVtSqZWYfkToc7d P3rg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :wdcipoutbound:content-language:accept-language:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature:dkim-signature; bh=8LRwACc9N4amVXgP1c6tadnlQKYFBobfTc5Y5y4YkQE=; b=NoH0Pa6SGPWDMPyx99at3jPDsXqlwRC9eMfKbsfnJy0Lb+hHQsEkdfwKsodKkqlKvN 9hw1pcxEFjmFcB4LrNnIcd+hVB5h+zPSHA2j1Sx26r7MEijxR5mE0ciujPUQclUmXkgx MOdvd9/IA07VSr+aW2VOEKRh8UwdrRj5GunLD5m9Iks5TznCA85arJ9gX6h3p0g3QMeB q6h38rcFC251YOBTCcLHsujJlXzcHImtCLPHJCeQng4cOyrCpJvwPnpH5Kg20q8Kjz22 MMovPTBnj/k0QNtiZ7FC7t0OrCV1F1g4a+aM4CoczN/c+XcB1w+Xe3faNqyAWPdoRO18 /Lqw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@wdc.com header.s=dkim.wdc.com header.b=d3D+QFu6; dkim=pass header.i=@sharedspace.onmicrosoft.com header.s=selector2-sharedspace-onmicrosoft-com header.b=YoSB3Czk; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=wdc.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s14si9915322pfc.146.2019.05.17.09.39.52; Fri, 17 May 2019 09:40:07 -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; dkim=fail header.i=@wdc.com header.s=dkim.wdc.com header.b=d3D+QFu6; dkim=pass header.i=@sharedspace.onmicrosoft.com header.s=selector2-sharedspace-onmicrosoft-com header.b=YoSB3Czk; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=wdc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726452AbfEQQcN (ORCPT + 99 others); Fri, 17 May 2019 12:32:13 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:39364 "EHLO esa1.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725932AbfEQQcM (ORCPT ); Fri, 17 May 2019 12:32:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1558110732; x=1589646732; h=from:to:cc:subject:date:message-id:references: content-transfer-encoding:mime-version; bh=qvM06v5LK2earYmAgDdwZOgIJmtAceqfZkuhQxMz6Cw=; b=d3D+QFu6DMSB8o4ry+fktLiSR9eresgq0BtXMnO5n1sPkEhbc0kp59VK dZFtn2MlLRPhgAXucAl9LEZCreoAfJynBu5BTawu5cRLwcqtBIAq7Uat6 BFum6FePgMwqTzuQtLhpz75vfLuzL9Tqvc5qDEcAzTYBbVeLDYlHr0gTx mypzosur4VPZjiDiIYfbR2t+L4Dkuw5W6xU2k6lFh6zKM1gACoext9CmJ ae0yU8qg7Fh5U2d9LpECDZcGxZ60FLF5LuaenG+nvs79x5fad7vqcT8fn n4fWRU7kk82keXhvaagSrdMwsIG1YW/+rem8m+Z4/+8Rf3Hy05f5XRqAQ A==; X-IronPort-AV: E=Sophos;i="5.60,480,1549900800"; d="scan'208";a="214659982" Received: from mail-bn3nam01lp2056.outbound.protection.outlook.com (HELO NAM01-BN3-obe.outbound.protection.outlook.com) ([104.47.33.56]) by ob1.hgst.iphmx.com with ESMTP; 18 May 2019 00:32:06 +0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector2-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8LRwACc9N4amVXgP1c6tadnlQKYFBobfTc5Y5y4YkQE=; b=YoSB3Czkud8aJNPxHvAQaHf4f99iV1w4AxEj2kIMsIN29G4BFaIlkOm9UZ0ny0IH0smzFlY+uP4xUUuXQI88pl2gP0wG/PQR88RYexvgU/y7D+ZBeO2yfRZpgqNGyiVt147QI3ShUiwXQ+U2y8uBkzrb92nA/26U4CHauGHXbXI= Received: from SN6PR04MB4527.namprd04.prod.outlook.com (52.135.120.25) by SN6PR04MB5312.namprd04.prod.outlook.com (20.177.255.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1900.17; Fri, 17 May 2019 16:32:02 +0000 Received: from SN6PR04MB4527.namprd04.prod.outlook.com ([fe80::b163:e740:af6e:2602]) by SN6PR04MB4527.namprd04.prod.outlook.com ([fe80::b163:e740:af6e:2602%6]) with mapi id 15.20.1900.010; Fri, 17 May 2019 16:32:02 +0000 From: Chaitanya Kulkarni To: xiaolinkui , "hch@lst.de" , "sagi@grimberg.me" CC: "linux-kernel@vger.kernel.org" , "linux-nvme@lists.infradead.org" Subject: Re: [PATCH] nvme: target: use struct_size() in kmalloc() Thread-Topic: [PATCH] nvme: target: use struct_size() in kmalloc() Thread-Index: AQHVDH8oTBY/BlMzjUaR4gerzBgDxQ== Date: Fri, 17 May 2019 16:32:02 +0000 Message-ID: References: <1558076615-8576-1-git-send-email-xiaolinkui@kylinos.cn> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Chaitanya.Kulkarni@wdc.com; x-originating-ip: [2605:e000:3e45:f500:f9a6:10ea:e679:e2ee] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4796274b-408c-4ef6-5450-08d6dae5312e x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(4618075)(2017052603328)(7193020);SRVR:SN6PR04MB5312; x-ms-traffictypediagnostic: SN6PR04MB5312: wdcipoutbound: EOP-TRUE x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4714; x-forefront-prvs: 0040126723 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(136003)(346002)(396003)(376002)(39860400002)(366004)(189003)(199004)(68736007)(476003)(4326008)(46003)(55016002)(14454004)(53936002)(9686003)(486006)(54906003)(446003)(229853002)(25786009)(6436002)(102836004)(6246003)(66946007)(66476007)(2501003)(66556008)(64756008)(66446008)(2906002)(76116006)(91956017)(73956011)(81156014)(71190400001)(7736002)(71200400001)(478600001)(72206003)(256004)(110136005)(7696005)(186003)(86362001)(76176011)(316002)(5660300002)(81166006)(33656002)(2201001)(52536014)(6506007)(8936002)(6116002)(53546011)(74316002)(8676002)(305945005)(99286004);DIR:OUT;SFP:1102;SCL:1;SRVR:SN6PR04MB5312;H:SN6PR04MB4527.namprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: i4zpuG7JX247DZ+MTcifqpzAXSGmhIGLB+CsJ4Qqr88okPesKhUaIElQlkuZTmSrFLHOJBlWCBzh+N5tSq3dhPKFkFQY6EuzMnsOVZtoIMNbJph8cn7TeQSwKHPLvxS1v9Jp5QEDuMF7T43oEenaL53BFIJl29tZ+I0qo3iLdNe1U69zLFES7AXmx5O2Iyf+dv90t38NXtv8RsWLfnjVn2W5z2EtQGJzcMhkH4k3C4fNMCoxdVVcMYvJp9QGzBye1DaIAQ8pt1AVsQF2XcPt0afHQlDJR83SOYTwjIh45sXBGRXzVyQkp86Zosa7fyiWkc77qunTDn6v/7pcgQzlS0Vnd+MCv1eYRWJbKPqS4mtDqGky2VWbYY5tetlkRoQtsh/0QeJeZjZqXxG74gzzyssNGUW6kcjH6oeZDu7BAa0= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4796274b-408c-4ef6-5450-08d6dae5312e X-MS-Exchange-CrossTenant-originalarrivaltime: 17 May 2019 16:32:02.5530 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR04MB5312 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If maintainers are okay with this then,=0A= =0A= Reviewed-by: Chaitanya Kulkarni =0A= =0A= On 5/17/19 12:07 AM, xiaolinkui wrote:=0A= > Use struct_size() to keep code sample.=0A= > One of the more common cases of allocation size calculations is finding= =0A= > the size of a structure that has a zero-sized array at the end, along=0A= > with memory for some number of elements for that array. For example:=0A= >=0A= > struct foo {=0A= > int stuff;=0A= > struct boo entry[];=0A= > };=0A= >=0A= > instance =3D kmalloc(sizeof(struct foo) + count * sizeof(struct boo), GFP= _KERNEL);=0A= >=0A= > Instead of leaving these open-coded and prone to type mistakes, we can=0A= > now use the new struct_size() helper:=0A= >=0A= > instance =3D kmalloc(struct_size(instance, entry, count), GFP_KERNEL);=0A= >=0A= > Signed-off-by: xiaolinkui =0A= > ---=0A= > drivers/nvme/target/admin-cmd.c | 4 ++--=0A= > 1 file changed, 2 insertions(+), 2 deletions(-)=0A= >=0A= > diff --git a/drivers/nvme/target/admin-cmd.c b/drivers/nvme/target/admin-= cmd.c=0A= > index 9f72d51..6f9f830 100644=0A= > --- a/drivers/nvme/target/admin-cmd.c=0A= > +++ b/drivers/nvme/target/admin-cmd.c=0A= > @@ -248,8 +248,8 @@ static void nvmet_execute_get_log_page_ana(struct nvm= et_req *req)=0A= > u16 status;=0A= > =0A= > status =3D NVME_SC_INTERNAL;=0A= > - desc =3D kmalloc(sizeof(struct nvme_ana_group_desc) +=0A= > - NVMET_MAX_NAMESPACES * sizeof(__le32), GFP_KERNEL);=0A= > + desc =3D kmalloc(struct_size(desc, nsids, NVMET_MAX_NAMESPACES),=0A= > + GFP_KERNEL);=0A= > if (!desc)=0A= > goto out;=0A= > =0A= =0A= =0A=