Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp5335272pxb; Wed, 26 Jan 2022 09:39:06 -0800 (PST) X-Google-Smtp-Source: ABdhPJz/TdYP5tzqgGMAWS2cdtlRfpphRpes1KMzkcVv2WyVpbKZP96r7x0uyshr9kT4asZ9G2xk X-Received: by 2002:aa7:8394:0:b0:4be:ab79:fcfa with SMTP id u20-20020aa78394000000b004beab79fcfamr23798439pfm.3.1643218746318; Wed, 26 Jan 2022 09:39:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643218746; cv=none; d=google.com; s=arc-20160816; b=MfU0TikL2Y+prTtjXE5v+1RrVzVhLENUlcwF3bejXdLmAtTRlOp+Ef51mWtXS0lHfI jWQko5jhCuRQ5dnwgQIH+kNpWUpdWc6jEn63NEHyEvzVMq8S9UKC9qDdu8FFGmRp5A+/ eV/atXnxSsvnkvsp49v5o2TkXwTs/ugwSf1aFVlemUSm9clc/c2bK4OyAec1wJITNB9s HJ0F4kVSMyBqhjcBJGnPRl0ZkwDWQdSlOINv4fTtmRhWxabuvoc8BJ+JGE8vJ6JZt88D B/jp2rzwQoqxKujfxhFcKV0mZBT51S2659aCpPYOECtIcSRelvP7zKWbv43v1t+EPJ14 /8jw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=E7anDpLimRE6bYis5gbdpa/RPki6eh1XfOHxrRk/P/4=; b=an4NWgVX4MPSByaFrOWPukDkL/mUe2iy6kNI3T6Rmap8BdmrxPO/NoLDI2j/DwAQSd y9PfaKrA4giN0NhMNudIf74DpQX3E8vd34U01YJQLPwqzDstCBKEjQyNi2FGIrLbrRMO yc63vwRhY0JHO527ykHfG4YzCc06tuZkrvtFha0F2QjfFEaH7jACbZ69HgAHOCKRX+O/ R2WjMCpzZch8FBgI2FPhP1aODCJ3AiFLFBm0nRFvG11aeRrDZW3q/dqnWZBAUYKgrlxO 3AFkGVouhF5ul7Zn3WYNORXJ20kMZA7PtTgFueahC1iu0cuZ6TakqffkV/v1tA05mPB0 2oDw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=SXRlHFjR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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. [23.128.96.18]) by mx.google.com with ESMTP id q205si20849003pgq.11.2022.01.26.09.38.54; Wed, 26 Jan 2022 09:39:06 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=SXRlHFjR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 S237213AbiAZDaP (ORCPT + 99 others); Tue, 25 Jan 2022 22:30:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47578 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229989AbiAZDaO (ORCPT ); Tue, 25 Jan 2022 22:30:14 -0500 Received: from mail-qk1-x72c.google.com (mail-qk1-x72c.google.com [IPv6:2607:f8b0:4864:20::72c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D8D8DC06161C; Tue, 25 Jan 2022 19:30:13 -0800 (PST) Received: by mail-qk1-x72c.google.com with SMTP id h2so27029254qkp.10; Tue, 25 Jan 2022 19:30:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=E7anDpLimRE6bYis5gbdpa/RPki6eh1XfOHxrRk/P/4=; b=SXRlHFjRWC2Mv38MUu2FfMqDEb49bJZfxYE559Kw+D0Pn2YltH77SpBW3HH0YW5AsE m8kzbCMD9MZIkkdaMBt1JMXzZvL87DNz+apl6ePX/TZd6D1vEa2xLP9paVzPlpB014h9 6RZ8KymN/gMgkdABfFHWVpzVAjSf0rYQjS5yktG4rHR6VGF8OAEdq4nqpvvJE1pRreRm qEtmS903LkbFXgqIFXymoOB30fFzO7Q+H8PFLqPdEYHjfqzuqV+Z7QsD3pCwq/2lJ9gm h+TZI7RIh7QW5QG05fDEDYNnEhfg5DP4DhdGFoRo5ptPvIqzokYrOMe0xQ5f3KanUOae L9AA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=E7anDpLimRE6bYis5gbdpa/RPki6eh1XfOHxrRk/P/4=; b=W9b3muUZtQSM6z1Db2YJp1EIHjTSbauHnZjLptqs+BluknAo4kUDTIPzlOiTLtCeWm 8cTroX5iLZ3ATLp2QsTtGn51RoIKLas4YOi+aF/10zugUO3zT8V3P1A4oyixYQghLrxW P0tM15Nn6uvN0Q7JUch1g5YX0gLmhRPA4JH5hEA1k6M17wtCk09p5PL2L8zTTi6bt6VI JrUd3YfDCsS0M64GFfBkHr+c07L847s+UtnDAi55CtjtiDi+qxsQZzq/ucyPtzOiogJ0 fulSrnXZBBLJqpk0t5IUYDIkSopWFDrACFXubbybP5Q8uX3NZFhcQ5xBycgkwAjN7KJd AAdg== X-Gm-Message-State: AOAM5309rFMrcHmOlWomzrc3lGkVchFm7g8tpErzstf0uqz6za6qh55g kILTOXUY5wo4+t4ZUVryu+iUpRXhORDNXqoITTI= X-Received: by 2002:a05:620a:d95:: with SMTP id q21mr16790410qkl.74.1643167812983; Tue, 25 Jan 2022 19:30:12 -0800 (PST) MIME-Version: 1.0 References: <20220125021353.GA29777@embeddedor> In-Reply-To: <20220125021353.GA29777@embeddedor> From: Baolin Wang Date: Wed, 26 Jan 2022 11:30:55 +0800 Message-ID: Subject: Re: [PATCH][next] hwspinlock: stm32: Use struct_size() helper in devm_kzalloc() To: "Gustavo A. R. Silva" Cc: Ohad Ben-Cohen , Bjorn Andersson , Maxime Coquelin , Alexandre Torgue , linux-remoteproc@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, LKML , linux-hardening@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jan 25, 2022 at 10:07 AM Gustavo A. R. Silva wrote: > > Make use of the struct_size() helper instead of an open-coded version, > in order to avoid any potential type mistakes or integer overflows that, > in the worst scenario, could lead to heap overflows. > > Also, address the following sparse warnings: > drivers/hwspinlock/stm32_hwspinlock.c:84:32: warning: using sizeof on a flexible structure > > Link: https://github.com/KSPP/linux/issues/174 > Signed-off-by: Gustavo A. R. Silva LGTM. Reviewed-by: Baolin Wang > --- > drivers/hwspinlock/stm32_hwspinlock.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/hwspinlock/stm32_hwspinlock.c b/drivers/hwspinlock/stm32_hwspinlock.c > index 5bd11a7fab65..716ad4401249 100644 > --- a/drivers/hwspinlock/stm32_hwspinlock.c > +++ b/drivers/hwspinlock/stm32_hwspinlock.c > @@ -73,15 +73,14 @@ static int stm32_hwspinlock_probe(struct platform_device *pdev) > struct device *dev = &pdev->dev; > struct stm32_hwspinlock *hw; > void __iomem *io_base; > - size_t array_size; > int i, ret; > > io_base = devm_platform_ioremap_resource(pdev, 0); > if (IS_ERR(io_base)) > return PTR_ERR(io_base); > > - array_size = STM32_MUTEX_NUM_LOCKS * sizeof(struct hwspinlock); > - hw = devm_kzalloc(dev, sizeof(*hw) + array_size, GFP_KERNEL); > + hw = devm_kzalloc(dev, struct_size(hw, bank.lock, STM32_MUTEX_NUM_LOCKS), > + GFP_KERNEL); > if (!hw) > return -ENOMEM; > > -- > 2.27.0 > -- Baolin Wang