Received: by 2002:a25:86ce:0:0:0:0:0 with SMTP id y14csp425022ybm; Mon, 20 May 2019 19:34:36 -0700 (PDT) X-Google-Smtp-Source: APXvYqyO+xGhhsTMpYxFdCKhwr3gNufUfcRAFcT07jKbn5IHcRbcvDOubwfWx5RLFMF3q6zWdaNu X-Received: by 2002:a63:c4c:: with SMTP id 12mr9938971pgm.36.1558406076066; Mon, 20 May 2019 19:34:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558406076; cv=none; d=google.com; s=arc-20160816; b=NGyPNuiuSmD4b1nVbfuxif4xcXig7erKQ29VeSecn5TOy9xH2UKb9ndNQ7edEiWBqB BwAn8K8Cap+oDZ846Qfa6LPOW00Kl1+suqlYmlz4/nHRKYsEY1jt295u38M1aE6cyA9I r9n0lofGzY7RO3pg6AHMs4bYs+b2YMQ/cHZt+wx4gyHvxTT7BWOz5FHdoW6sa4nvjj+z R47yGslV0qz4PYseCweeLC1kZNJtyZjuhVBbqZJdzN3l4HAV6dE8zjhYPl0iSoI3AoL3 oTCxbVqvcOp7B8Ikfl2FWN+soHkhpYkFuAf8VsQP8rR+BFqhV06FJa6e/fic+fq13XFO UhVw== 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:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=Kd6dZtuJ+zXIoXi0n4Wghz44M25gXh6ZLX+Zm5Oue7o=; b=WgE07jhnYMiYBXUMtm8kz+wnocZszL5DWHDheF2QGit8CxC+3xfRPFb26AXpgjudDb YgBkS2OT6UR5nGA7m/whtYkhERqNx7KmJMJF2ejt9xpKsd+OQwItauVt78CwnN8uCOP3 v3XSVhSyC9Wt4nXfU4ZEdiMkyfbcQ7BdlXaszVv0ozS3hyiPZWV36n9cXRvBR+tS+tOR orWeXwsY0nNNqmPmuW2WRs3bd1KnvQpYArTpIYPKS7hn1auKtvW2GiWhiTIT7bKcxEMy WHB3I8a4wsEqQe5lkpzYiXTQnKtyVv8NOhZDJB54wvGkYUXl/tNlL0pBFpOsq+aApUqa IK4A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=QkcRhCCx; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s61si17143141plb.259.2019.05.20.19.34.21; Mon, 20 May 2019 19:34:36 -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=pass header.i=@gmail.com header.s=20161025 header.b=QkcRhCCx; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727613AbfEUCdD (ORCPT + 99 others); Mon, 20 May 2019 22:33:03 -0400 Received: from mail-wm1-f66.google.com ([209.85.128.66]:51428 "EHLO mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726039AbfEUCdD (ORCPT ); Mon, 20 May 2019 22:33:03 -0400 Received: by mail-wm1-f66.google.com with SMTP id c77so1226683wmd.1 for ; Mon, 20 May 2019 19:33:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=Kd6dZtuJ+zXIoXi0n4Wghz44M25gXh6ZLX+Zm5Oue7o=; b=QkcRhCCxjWn7ooDTcuWtWeD4PwQRkjapE24t6b2y2+/FMNepC2urjqAcEfUEeaHLPg BkmnrJJK3srOj91fNZISPcEf1SeroEn26oxUJ/9jYp5OGFrD5QSg431lE5yZiXc3pGJi sbrGI1ooHvbIJXFFa0p0oSs6Xzs8wavTSCmp8gDqW3M519qmd2P9Fckvbf4Sr4Z/2DSF Ob/0wusSyie8A5rvkpy0RcH9SfXztzVdeJax9zlufiHZMS+kH4SjjUxhOtOn4s/5/8Hu /GQL7tuaXn9MtA6bh3UjSxa0CPw5UG3G/7OFL+jkZ7CEEtwyBNRMPLrs1tJFhGhLTaP3 2LxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=Kd6dZtuJ+zXIoXi0n4Wghz44M25gXh6ZLX+Zm5Oue7o=; b=Dswh2v/LWnIgHfqvbFz3VsRBKd/+YDyPrRLpgWTCNnTyWm5HZX0WxQUxo0ESOKnMxW rVu5bh+SZJDrVvpdzOXytxN4LkIEHDm5OPKI30pedTYntbKL2qRRQc/LWkep5akM0NpF RptQq0MAYqJH4RUBLEv4aK03fwHLVxcAJbJiq3INGZPiencDPJhij2XL8j6EgEPIrwRG yBiZudcu3cgdvgZ6BrJaW8pkUv4lmGm22DXSf+BWUB5kR64yp1XcC3twdqqFE0ogiJiq c7J3RhL3hLvD8AVQ8eS9kanCkalnE5RKXDTkFYE0hHP7mQFQwTFFFLcONxePW6ntFPDK cvJw== X-Gm-Message-State: APjAAAWJUwchcgknzrz74J82JrJsn1oNcq0uVsukTJG4Fw0hIFAARsTn 3+smIvs1eMGXEP6iRAihDIyY1ws41iJRqtjUZ/Y= X-Received: by 2002:a1c:f009:: with SMTP id a9mr1359554wmb.110.1558405981000; Mon, 20 May 2019 19:33:01 -0700 (PDT) MIME-Version: 1.0 References: <1558082760-4915-1-git-send-email-xiaolinkui@kylinos.cn> <20190520162807.GE21222@phenom.ffwll.local> In-Reply-To: From: Alex Deucher Date: Mon, 20 May 2019 22:32:49 -0400 Message-ID: Subject: Re: [PATCH] gpu: drm: use struct_size() in kmalloc() To: "Pan, Xinhui" Cc: Daniel Vetter , "Zhou, David(ChunMing)" , "airlied@linux.ie" , xiaolinkui , "linux-kernel@vger.kernel.org" , "amd-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" , "Deucher, Alexander" , "Quan, Evan" , "Koenig, Christian" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, May 20, 2019 at 7:19 PM Pan, Xinhui wrote: > > Daniel, what you are talking about is totally wrong. > 1) AFAIK, only one zero-size array can be in the end of a struct. > 2) two struct_size will add up struct itself twice. the sum is wrong then= . > > No offense. I can't help feeling lucky that you are in intel. Xinhui, Please keep things civil. There is no need for comments like this. Alex > > > =E5=8F=91=E4=BB=B6=E4=BA=BA: Daniel Vetter =E4= =BB=A3=E8=A1=A8 Daniel Vetter > =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2019=E5=B9=B45=E6=9C=8821=E6=97=A5 = 0:28 > =E6=94=B6=E4=BB=B6=E4=BA=BA: Pan, Xinhui > =E6=8A=84=E9=80=81: Deucher, Alexander; Koenig, Christian; Zhou, David(Ch= unMing); airlied@linux.ie; daniel@ffwll.ch; Quan, Evan; xiaolinkui; amd-gfx= @lists.freedesktop.org; dri-devel@lists.freedesktop.org; linux-kernel@vger.= kernel.org > =E4=B8=BB=E9=A2=98: Re: [PATCH] gpu: drm: use struct_size() in kmalloc() > > [CAUTION: External Email] > > On Fri, May 17, 2019 at 04:44:30PM +0000, Pan, Xinhui wrote: > > I am going to put more members which are also array after this struct, > > not only obj[]. Looks like this struct_size did not help on multiple > > array case. Thanks anyway. ________________________________ > > You can then add them up, e.g. kmalloc(struct_size()+struct_size(), > GFP_KERNEL), so this patch here still looks like a good idea. > > Reviewed-by: Daniel Vetter > > Cheers, Daniel > > > From: xiaolinkui > > Sent: Friday, May 17, 2019 4:46:00 PM > > To: Deucher, Alexander; Koenig, Christian; Zhou, David(ChunMing); airli= ed@linux.ie; daniel@ffwll.ch; Pan, Xinhui; Quan, Evan > > Cc: amd-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org; lin= ux-kernel@vger.kernel.org; xiaolinkui@kylinos.cn > > Subject: [PATCH] gpu: drm: use struct_size() in kmalloc() > > > > [CAUTION: External Email] > > > > Use struct_size() helper to keep code simple. > > > > Signed-off-by: xiaolinkui > > --- > > drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/= amd/amdgpu/amdgpu_ras.c > > index 22bd21e..4717a64 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c > > @@ -1375,8 +1375,7 @@ int amdgpu_ras_init(struct amdgpu_device *adev) > > if (con) > > return 0; > > > > - con =3D kmalloc(sizeof(struct amdgpu_ras) + > > - sizeof(struct ras_manager) * AMDGPU_RAS_BLOCK_C= OUNT, > > + con =3D kmalloc(struct_size(con, objs, AMDGPU_RAS_BLOCK_COUNT), > > GFP_KERNEL|__GFP_ZERO); > > if (!con) > > return -ENOMEM; > > -- > > 2.7.4 > > > > > > > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch > _______________________________________________ > amd-gfx mailing list > amd-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx