From nobody Thu Apr 9 13:23:45 2026 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 51558274B46 for ; Sun, 8 Mar 2026 22:22:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773008523; cv=none; b=OcLPAu2DsNjEm5mIP8lhC3FiHGKOs1ANInj8SU2L8scx+TDxQzlmMZjAW9OZgqbEsP7QUEtvMSO11U4rm9ssXof//P4kRygf/i7oKXjfhpaFKvNbqD5M+sh/LXhcMPw012DsjekPLCv9CUdqSJJxi7qubCkxfuC4cNZVNlZq7CI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773008523; c=relaxed/simple; bh=nndh+a3GF6Dx34O1Z3osTj/jDZqj7Dm/ms8tc9Udpig=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=hY0C73JtMDo+sfN+DRndDwA93S00Vv5Cz7uwm4QDDwscWBSzq76M8UTXcXIdxd93cZLoYQLnyV/i3193RS2WUTxa3XypZPQGU1GGJQCWjCVc/9ZW562xqJv0klMEbBAt607KikJ+RHnPGP+gOnX2W1UAoNG4eGXLkceTxiJJP+g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=koARFApJ; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="koARFApJ" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2addb31945aso79904145ad.1 for ; Sun, 08 Mar 2026 15:22:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773008521; x=1773613321; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=sC+col1RB5k/y2v4aqOHES194K6Qsz6loLkbUW5Pqd8=; b=koARFApJogUypHHaMVjwTSVMQ6PdkTQ8LnakU3gvTgq8Mwg0ejV2A1ItcUViq33fzP 6baFJjQVPNEIemeGpu2FqGrfJFYyOb0dMLO7yoal2qe94dGzAN9PqNyO/Yoy7OjaXwQK Noa/NUUKQViGnzMKNFCoT5yhG9O0T8qz29hv0oETWgsSegVYskS2T/9uMiO9HiJyKJiz JH+fLthE5Vtu6JNuiPwDcjQsPf6uyGIWw2zxN6SqIo/WhssOmpuNTz5XojzC+IVtlNZH 1/Vj1p3xdsioYtDjaBtbJysz44Abf0NnPBj/0sb2Bm26ThziDVION5oe48nmInG2eoor DidQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773008521; x=1773613321; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=sC+col1RB5k/y2v4aqOHES194K6Qsz6loLkbUW5Pqd8=; b=GcvnS29b18lIRWSQ3Ze74nndQWwoty4tFZeiDbsvVhkyiCIqpoUaDyskJi2EvX5RJx QEwuz+owG3fRAvezOMXidOPqXz84bmFakCP8UbqmnhqLbLM17YxmD+M9cVjWjlLYA1Gc wc/4/vLvxF6LfYFTXWim3ASN2WawapQi3Fpu2jN/YQ893Om9up0JSvCrJycfs7FxdcA7 VxtXdd83NRqpoZRep/TysiTfGh+9MwNBjZE28LuPmZXKMzm5OCum1g4oplfMEAHfuFae Q2XHOXNvdaTGvNNdQLqwsb2n7RdBKTjVm7rUWbgU1ewfZ95QV/2ScW/t9cBAYJcLPKh8 m2UQ== X-Forwarded-Encrypted: i=1; AJvYcCXBoLDAz7YDxtnDhWYBuVUhbmelS20PFL881y0jjTlh8rFRauToHbCxNNudNAzo/xr+2/2a7If5aUor7A4=@vger.kernel.org X-Gm-Message-State: AOJu0YxCNh14Ov9zjnXE22ZJLF2rlMhxro00D82kCJsGVJL2+VL6jRtM 5S+/WwlXKBnancWLJDPfSDB6h6X2LmbQc46U2lT61XStBP7mRuDr/2my X-Gm-Gg: ATEYQzwzPtyM454I5luCPN5+1w84XpcgKS6PSBQHfsH3GV3BUfAubyruV/PAFveWRQT dl4e5Zmp5rIKmDZTDMeI0mdAKDrXf1m3q/un0T424Wcqo7AJMw+767xV1toeYB794S5dXPsr37i 9JG+Y4EvwEOwLAtUI6E+yXH05EnaJfvIQ62jHAZCvjxY6Rcc8/pxbfLeZn+ZW8+t6d9u/jjUBDM WWhIuJ8d1kJ4Qjta07EIsVP9SM47BMF02BKEtVVaaOF5iJ1k/IJgkxCbJPrrweQ4MufjFdZnx6l yWT/f4Z2v0/XySrotF2+aIuPkhoZPuvCA9xo0yweboeMVbzvKujzNnfxlE+cetAy6oSNO+MurqP 6VwP5goGs3d1bpTbiZtYvEI2huV1ZMm6Tss3nbgJ+megyRf79+/VlAtZsqNTOQPKbieu0656rKA +0RZx7NNOXMz5ft+8w7jhXzAcLPwE2dEuFbpfaYpnbd4EMKnAzYMRL/w== X-Received: by 2002:a17:903:234a:b0:2a7:5751:5b30 with SMTP id d9443c01a7336-2ae82366c40mr82171715ad.12.1773008521473; Sun, 08 Mar 2026 15:22:01 -0700 (PDT) Received: from ryzen ([2601:644:8000:56f5::8bd]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae83e57b1fsm117932915ad.12.2026.03.08.15.22.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 08 Mar 2026 15:22:00 -0700 (PDT) From: Rosen Penev To: dmaengine@vger.kernel.org Cc: Vinod Koul , Frank Li , Taichi Sugaya , Takao Orito , Kees Cook , "Gustavo A. R. Silva" , linux-arm-kernel@lists.infradead.org (moderated list:ARM/MILBEAUT ARCHITECTURE), linux-kernel@vger.kernel.org (open list), linux-hardening@vger.kernel.org (open list:KERNEL HARDENING (not covered by other areas):Keyword:\b__counted_by(_le|_be)?\b) Subject: [PATCH] dmaengine: milbeaut-hdmac: use kzalloc_flex Date: Sun, 8 Mar 2026 15:21:43 -0700 Message-ID: <20260308222143.50186-1-rosenp@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Reduces allocation to a single one for simplicity. Added __counted_by for extra runtime analysis. Replace loop with memcpy. The loop adds no value here. Signed-off-by: Rosen Penev --- drivers/dma/milbeaut-hdmac.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/drivers/dma/milbeaut-hdmac.c b/drivers/dma/milbeaut-hdmac.c index b4ebc09e80d0..2e15a2256b55 100644 --- a/drivers/dma/milbeaut-hdmac.c +++ b/drivers/dma/milbeaut-hdmac.c @@ -58,10 +58,10 @@ =20 struct milbeaut_hdmac_desc { struct virt_dma_desc vd; - struct scatterlist *sgl; unsigned int sg_len; unsigned int sg_cur; enum dma_transfer_direction dir; + struct scatterlist sgl[] __counted_by(sg_len); }; =20 struct milbeaut_hdmac_chan { @@ -260,25 +260,16 @@ milbeaut_hdmac_prep_slave_sg(struct dma_chan *chan, s= truct scatterlist *sgl, { struct virt_dma_chan *vc =3D to_virt_chan(chan); struct milbeaut_hdmac_desc *md; - int i; =20 if (!is_slave_direction(direction)) return NULL; =20 - md =3D kzalloc_obj(*md, GFP_NOWAIT); + md =3D kzalloc_flex(*md, sgl, sg_len, GFP_NOWAIT); if (!md) return NULL; =20 - md->sgl =3D kzalloc_objs(*sgl, sg_len, GFP_NOWAIT); - if (!md->sgl) { - kfree(md); - return NULL; - } - - for (i =3D 0; i < sg_len; i++) - md->sgl[i] =3D sgl[i]; - md->sg_len =3D sg_len; + memcpy(md->sgl, sgl, sg_len * sizeof(*sgl)); md->dir =3D direction; =20 return vchan_tx_prep(vc, &md->vd, flags); @@ -395,7 +386,6 @@ static void milbeaut_hdmac_desc_free(struct virt_dma_de= sc *vd) { struct milbeaut_hdmac_desc *md =3D to_milbeaut_hdmac_desc(vd); =20 - kfree(md->sgl); kfree(md); } =20 --=20 2.53.0