From nobody Fri Apr 17 12:01:18 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CD65533E37C for ; Thu, 19 Feb 2026 11:27:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771500448; cv=none; b=MkcsDQ/yEFGjF9AGSaSbs5YczOwoG4oYTzVKFbSbBO+2p8JrE7Q0RYbEGQiBwXDtUzuSzgQFjJH4NCfdmeNfG2exOMyDSEu9R7Vj/k0srKZZcliMMqHlU2krHzc3vihsVmHXkVpjxDqDUpgeVUWRfIZfGRkkzlIWNf+ztcu3LRo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771500448; c=relaxed/simple; bh=QDmpj9Mhi+yaAgNVbdMPNkUREhCivGToVpPYIMUn09A=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oVQjoAX3UBqLD+zobHdxnIWfpV8UrkzHKYovGj+aGRuxUGUAa3+3QE5g2QYw1ZbP4SYz+lADJqxLQehlyKGSVndmxg5jhl2eDugVnuJyoQvzaNaeguBaS3thzSgeVMFM4s8nvDPBkmwroBnneJT3zhZlc76PpLg856BCVFyLVio= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=L2TYlkTP; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=H+u/IklS; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="L2TYlkTP"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="H+u/IklS" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61J7UCWY398407 for ; Thu, 19 Feb 2026 11:27:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= hy+BuVS0iLVMRmhvOck3ZxPEwiAHI2ibXjhBmo6hiuo=; b=L2TYlkTPyyp0CHuc Qd9a43DHIZveEBAUgpBJRkPft2Y/7HgTN/a6SHJ5vrvSTY8Wg9JKJ/IRDr1fgYiO rfedf/9BjsRlfmzNH4nfJ1aBMDVi7njvd3LxpprgqCLUg7HFG8KgjZh9ENfZB753 mNz1N51XL3ZxYl+0qKVSgT83PYozzTA5bVgltPfewmW1e5H3NTf6RTxNjXmsihpe IIt6M80GY6V2zgmoLZhFYeTbZ7piwH2z2Sy7xbZN+MUSAoPp1MPaJrbCnVY1Dngb lMWBr1pjo6xSo1xvyeI3+73idd0wkcr/5uGurMt/DSNDks6/ArNPQqhWP5nDmjag Kc2Igw== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cdmxvsu12-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 19 Feb 2026 11:27:26 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-8c71655aa11so824171085a.3 for ; Thu, 19 Feb 2026 03:27:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1771500445; x=1772105245; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=hy+BuVS0iLVMRmhvOck3ZxPEwiAHI2ibXjhBmo6hiuo=; b=H+u/IklSc9dH/wGsAXDOiXNx6UfWpCBubGKFbqVG1o2HdPDm6wkx3gP40OX+oAWhnj iOdRXAc/TRSDvau0DvIIvWj3+lHVzDS437bTZpeKUAxvDllO6+pQHi9oG6kv6DyOpP5C df4rcOusS77oZP3oACy7/pa3rkp0so97O9VbfglpRPEXA+KqGETshVd9Y7mIi0pb+QKp x11H6STmlRoUtbawhZoD3nRgNr/1TOp4G4Jm4cmw805feYxejtLmEv5aIFL8taI/nwEP 6Ytls+nGlVJN/joR+AJ/NW8lEnfZo2Pw5Lb0uQCLmau+/HPZMJJjqE9KL2heXDaLJCiY Bizg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771500445; x=1772105245; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=hy+BuVS0iLVMRmhvOck3ZxPEwiAHI2ibXjhBmo6hiuo=; b=hSpZ7wQID1l9rxXt/cQg1wd+b7QYs5pImxHPRr2ATAXDKFelOVhy5YWmEZdMQrkrS7 GRacmTfSNE1WeDbil4pVZmuAa5NQTYcbFlV0dsxd4nWqi+I3o39AAI+uyF8ESTZdBG3k GN+IEGVxY1wvDiEF+osjrQ61Jog8RBGEVxvP2muZmlK8nsLCzeV8V/WWNgnKtN86ZpdK 2eIkRL/qjnIMIfYHY2oX5IJ9C1RIEdT29Tf/fBZKYM1gVOAaemgGIc77T10dQalDyuLA BMnwYwy09LR9dOx30a1Uetd0JLUSSK0YwRtYaRwWmVQQ/Y4c1C/PT25t5oylZHmjq4Mr ayNg== X-Gm-Message-State: AOJu0YwG8QVjq8A5V0im8VscSmNyQlNtCtQmvWywglZ55qPPkvJCCADF Hsyp2Jtdjga1G2PzLwVlEuCHtPfJhZ1oQt575Nf0V2E85Hh94B1CGB1nbJuMTS/bKCn22OO90fX m791G89Tmmxt9YEbT9ok5tr1o6O9moG1Roz7XFgWin/6gQHE5tqfsqHoBjhOObi3DFok= X-Gm-Gg: AZuq6aJJRvq2MnFgbzFD9nSyFmCpYB1/z5CQuHrdOJp931b0rrtlaYurO/r3yJHlmxY z1VPzdoIUm3L4zBO4q3wfRN3GlM7e/1Mo3cWJFehphkwIWS5PdCJTcU/G0UaGnnRPGQwCVo3oNI maxRVbTov6FfsvwHpuV/+HaoC1HLhwLg3fzNDHHo42Az0kE7Z9vc2gUgVjRpfb0XBSFM2sZiCMo VXoY544aEGogacsQBePYt33cJ6qJ8XuGHRuHu9nvQCn6QnxY5GD3n+HTsgQsIxcrnXcmOTtFMhx oUaf5m5T+GGai7LDhWV+wgr/C1aOQjbHUXtNrike0UmSh3Nw2+169422zYegP4O7Dsrl1gJCNN0 iJ4nJHihIKo9gMigUZYkAul/BLHoka2fSCYsCbLifyuObYg== X-Received: by 2002:a05:620a:4492:b0:8ca:4438:b8f4 with SMTP id af79cd13be357-8cb740ef205mr615679185a.67.1771500445318; Thu, 19 Feb 2026 03:27:25 -0800 (PST) X-Received: by 2002:a05:620a:4492:b0:8ca:4438:b8f4 with SMTP id af79cd13be357-8cb740ef205mr615676285a.67.1771500444867; Thu, 19 Feb 2026 03:27:24 -0800 (PST) Received: from [127.0.1.1] ([178.197.223.140]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43796ac8d82sm48903796f8f.31.2026.02.19.03.27.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Feb 2026 03:27:24 -0800 (PST) From: Krzysztof Kozlowski Date: Thu, 19 Feb 2026 12:27:10 +0100 Subject: [PATCH v2 1/3] firmware: exynos-acpm: Use unsigned int for acpm_pmic_linux_errmap index Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260219-firmare-acpm-counted-v2-1-e1f7389237d3@oss.qualcomm.com> References: <20260219-firmare-acpm-counted-v2-0-e1f7389237d3@oss.qualcomm.com> In-Reply-To: <20260219-firmare-acpm-counted-v2-0-e1f7389237d3@oss.qualcomm.com> To: Tudor Ambarus , Krzysztof Kozlowski , Alim Akhtar , Kees Cook , "Gustavo A. R. Silva" , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-hardening@vger.kernel.org, llvm@lists.linux.dev, Krzysztof Kozlowski X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1038; i=krzysztof.kozlowski@oss.qualcomm.com; h=from:subject:message-id; bh=QDmpj9Mhi+yaAgNVbdMPNkUREhCivGToVpPYIMUn09A=; b=owEBbQKS/ZANAwAKAcE3ZuaGi4PXAcsmYgBplvOXAyCwdeeG60WQzcr9Uo+M3mkJDcWzTWLZ3 kXMLJDmM7KJAjMEAAEKAB0WIQTd0mIoPREbIztuuKjBN2bmhouD1wUCaZbzlwAKCRDBN2bmhouD 17aeD/wOR6DTrP+rBWdXbkF2r6rb3/tLd36u8MghhP0UWVrgi2z0y/jWoTssX+J0V7oPlxzXpCI cMgluqyML+MC9L60z4kTPIFqhi/AtNdC/8CVFU5a0Hx68otOv/K0qBDMJ077FvMe140HHGGnh0u kpO/PsZ0EJnWWzvZgqVb6M051BYBvsywoJdt16H7swNJHBnCLfBtK7aXx+Nq71u8405lw8LuEDL iZhrXgvWNZLN8mbNFGdGoZQLoKAbf3jbwoCLxRuLB1W66O5Y2nvPVw2vIszBoJaHfAJ6HM5rCAb HKqodL/5CTHrZBnnr/3qTltvJsRGisotNasGln36eo065HHND1/NQdUPEf1PInYEOZPsohYAu0Y tHPyFYJud5k6PQIrP1lcHEpkQnH0ggxXaVae1GMOEVf/DwsiO2XajyruDU2k+eI7idNY1AO86SY WNvog6SSmc8oZmh8in3yvpOO7lKGq3WMcYrvrUXfv7F8uB7dRRTHbti4hWbN/wfWct9ZatBDN+c 6EKzxbtIuFUTi8QB+AhmcL2uZn66/y2PdJZb2xgsRacVhy1rrIVQl34XIpnmbC7Mq8zJWWm0kd4 gK3mAVXA4SnwngfiqWpon86kStiZ8hVlMbBcAUCJ9uvr66DAjhB0orNeIRirQiB1ktbGltC1Ayr EEFtsxNfwsjn84A== X-Developer-Key: i=krzysztof.kozlowski@oss.qualcomm.com; a=openpgp; fpr=9BD07E0E0C51F8D59677B7541B93437D3B41629B X-Proofpoint-GUID: EwVqQVpbo3aj9IQAcTuFySoCkHiTJ0xL X-Proofpoint-ORIG-GUID: EwVqQVpbo3aj9IQAcTuFySoCkHiTJ0xL X-Authority-Analysis: v=2.4 cv=XpX3+FF9 c=1 sm=1 tr=0 ts=6996f39e cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=6nO30s3o7FuWeffXwhKHTA==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=ba0xTr4slAEstdPKfgkA:9 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjE5MDEwNSBTYWx0ZWRfX3sd16cKuKMlJ FuIoso1sUr2VM/Dd/2psGQ7qwMTqPMiO6lSx0QHKqTtp8+A3lhxSSDmTxNUL4up5TwbZITsd2dG T/tL8Wr2rG4cj4KFxrp1J+Wq/TGV7ZgL12q0SPPxwJQz9IFfp8wi3zi0x2yUUjxk+cUFdEcf46i lOW1S2dHeE98lkO22kvi35uGad5R1i7kT9V/aJAa13w3tw0wMB4qB4Xvddwp3wfwOeyD6um4DtA waY75NCZIPlzo2pvCl7ylYQJ/3SZVB7KgMqpSAldzqXN9n44Xev79rMUeemu0fE6I8E8gKF/GTb J/4C8PLdWmTpB0Pbeh5g6QsoHJuyxCkNdovNGfSdAAGghcxdJgtdiAUABRfL77aE/RMFEAgy3qW vahQ1qI7cj5CbUKVD4Vz8kPN1x8JInrTKq9CMiNXAKeaMegfEIjhHBfT8v7/5wWB6B72FeXkZvf +05NMMcn3zLhDisV7bw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-19_03,2026-02-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 suspectscore=0 clxscore=1015 adultscore=0 priorityscore=1501 lowpriorityscore=0 bulkscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602190105 acpm_pmic_to_linux_err() uses an unsigned integer obtained from messages as index of array to map them to error codes. Array index cannot be negative, so make that explicit. Reviewed-by: Tudor Ambarus Signed-off-by: Krzysztof Kozlowski --- drivers/firmware/samsung/exynos-acpm-pmic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/firmware/samsung/exynos-acpm-pmic.c b/drivers/firmware= /samsung/exynos-acpm-pmic.c index 961d7599e422..44265db34ae6 100644 --- a/drivers/firmware/samsung/exynos-acpm-pmic.c +++ b/drivers/firmware/samsung/exynos-acpm-pmic.c @@ -41,7 +41,7 @@ static const int acpm_pmic_linux_errmap[] =3D { [2] =3D -EACCES, /* Write register can't be accessed or issues to access = it. */ }; =20 -static int acpm_pmic_to_linux_err(int err) +static int acpm_pmic_to_linux_err(unsigned int err) { if (err >=3D 0 && err < ARRAY_SIZE(acpm_pmic_linux_errmap)) return acpm_pmic_linux_errmap[err]; --=20 2.51.0 From nobody Fri Apr 17 12:01:18 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A32F433F362 for ; Thu, 19 Feb 2026 11:27:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771500450; cv=none; b=onYfhu7P/P4DF9jqqf6bobqMCDVCnPFPDrAZynwmtDo0NaJKD40wOvjZRCKe5mCC4jklfUj35Ru0SAmcX5bP/GEHSVz5h4LpNIoRy1w4a2SE4aNUmI76933Ywo7dqJ5TAwN/XU1lvyJ29iegvOtzdyo+udNGDT4YguVeA1YCBMg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771500450; c=relaxed/simple; bh=sMLN/7ZBA2P0C1881XG/mSB/uFAs4yEuNbwucOSQHKk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OY6SEoiZzm2qSeEQ3FY0w/7Mc7ggrM8tNC8dQ+qwOsGk672EpK6lVVRv9ml5K0RIohAfvCurr+rSzU0ehMQaIgF7zpGhOp6Vl+20QZJkiaTT6Mq7jBRiT/rxfnEGsRP4zCXbk6bUOLBsH9UmIuvKLeTo0ef9UaBFrUHmo5CyBXw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=JfzLxZQB; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=kU9CNYp1; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="JfzLxZQB"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="kU9CNYp1" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61J97o3Q1294377 for ; Thu, 19 Feb 2026 11:27:28 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= ou7ebgKBjCjOIB9PlzrTghR5gcm+XWioNOKUO6+BOOU=; b=JfzLxZQBhQzr6QdO 7G0D5NxmxR5cqL2xJIaTgYGafNC98yQGcmxG/Imjjpo8eZcrSdIBqcuXGHw4wkDq bVLBa5isbqlWc/7YiqRORbOKgdtotkCtH8+d8cqKRK4VzD6EDifIwSyLZJ/Gojtx uf1oc+NaMG2qI7qyc6FWYquhSleNqz5PF9jkWuhzbEk3kau/3QylRbhnzFKxOT+B yHzGHLKJLakSkgi7JHVxaPyBHRs51v6SPu2mDVjM0tAPPljwzeUM4EOrTCDbBsg2 8GpD+1o1JAk/HvIwlgDB6PL3HMDEXYqxBbOFOjvSxl7vGa5o0chggVeOTUy6fuk1 nMawVw== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cd3ahcrw1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 19 Feb 2026 11:27:27 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-506b1524dfeso62426671cf.2 for ; Thu, 19 Feb 2026 03:27:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1771500447; x=1772105247; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=ou7ebgKBjCjOIB9PlzrTghR5gcm+XWioNOKUO6+BOOU=; b=kU9CNYp1ETF9O7NKHhBpU7iwuAUgXFsR2nXbHaxh0TQrdpCnmGZXWnYWHyiqBdOgI6 1E0DLmse0OmSavjZC+HDRuugssKYlEFyUtfIm1Ufo9aRo0A9oxVBAoxupQEl/Etielhm Q+fv3ZnVY1GTIrTuGWXSKy1NJxvCHVHMRDqZTISDbI5SLlKEW8AQyKux0UOYJVLnLhF/ x1PtOra44Uz8O/hQWOVQW2l8qwWNdF+F56TqAGnRYGaFluS2BmDClwyolSDm6ouc60Dq 5ii+MVFsn6ps4u/jsIvCb+eKz3mXgaMKCCuD6LsCcxxHZJh82zrRBVhnhfT7KY4BdLUv 8LTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771500447; x=1772105247; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=ou7ebgKBjCjOIB9PlzrTghR5gcm+XWioNOKUO6+BOOU=; b=fN9yA3JWio0T/KEFqaJnLqHuPgEJkfkBH8sf8qnxIjJVm0XkaRGm4auLhk9M/vWHLQ +obynZHH9x0Litzlzm86HLWuUlB0U4nqkml+Oi2/VQyyXvNeh1G6SKJ9Zv1Etl2FEMGJ d8YVTUtRLigZc1co0fxk1Kjs1ag8+VJuZ7Ho99ubc+0iwMxN8NnFGN2It7zOZwwuodoW ZNBrEKMrM4VnnneFLhv4BoLSQ1JKYq21dvNLqfd0QtReAVDNLL4x11iccapw/dnQXwYT wECms2jYHwEDQzxlr+H0wA8P+kxcQZS3S4bCZ5CEZfQolJR03HGj1liuBLdUxIJ3IdIn 7edw== X-Gm-Message-State: AOJu0Yw6gd+ueu4uP+94XH2Rgb1dBdIJEeOkNlsHOGo0wYlp414OkW/L SIs7IpGWi5y/Y+oLRPkmxB4T4kSDMnltDmXcpbXA9hFAG54Uzq3C9gfDpNNC07Yx7dJYuGt67jC xIG7buAt9rkFy90vX+OJ3IDnt8ZVsjzexI6jh+n392btuFtIzD0P3mCGkmaBTJ1QhuO8= X-Gm-Gg: AZuq6aLuWkRQlG6q3j5C9G//ArJ2ub8oE5FVbdQhcSbBwMWqGWp9i/FSz7CygG+MFyY VUo0WtjEBdHKod8V0R3yaEaM91JH7mZ9APjHs0BJ2jgrHpgKYUOCC6+pQFmGB4kZe2852qYY+Ql xcG3oz8OkZFYwO3M4gfWcAKpacSaMzlpomLL2O3YnaU4plTF33xnlm3+oxZrsm0ngFncnFaWocx F1q8REK94QI6PU73cegA2AVw7XvfnumxQGsGlor4kslTSBkgVuOy5zih6Yac7ectknyPs2irzcx y8cnldmBA+CnjYKJiZ3Zkb2eG0owIarJliUDdJRWbSaKS10bqYH8ziWX+BbWY+YOVlI4e8U0GX5 l0DfMyqvhCMq+xcjf7oTERtT+VCsDlkdzHNSzv15R7NV/HQ== X-Received: by 2002:a05:620a:4447:b0:8c7:1afd:a535 with SMTP id af79cd13be357-8cb74058e0fmr576146785a.25.1771500446927; Thu, 19 Feb 2026 03:27:26 -0800 (PST) X-Received: by 2002:a05:620a:4447:b0:8c7:1afd:a535 with SMTP id af79cd13be357-8cb74058e0fmr576144185a.25.1771500446487; Thu, 19 Feb 2026 03:27:26 -0800 (PST) Received: from [127.0.1.1] ([178.197.223.140]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43796ac8d82sm48903796f8f.31.2026.02.19.03.27.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Feb 2026 03:27:25 -0800 (PST) From: Krzysztof Kozlowski Date: Thu, 19 Feb 2026 12:27:11 +0100 Subject: [PATCH v2 2/3] firmware: exynos-acpm: Count number of commands in acpm_xfer Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260219-firmare-acpm-counted-v2-2-e1f7389237d3@oss.qualcomm.com> References: <20260219-firmare-acpm-counted-v2-0-e1f7389237d3@oss.qualcomm.com> In-Reply-To: <20260219-firmare-acpm-counted-v2-0-e1f7389237d3@oss.qualcomm.com> To: Tudor Ambarus , Krzysztof Kozlowski , Alim Akhtar , Kees Cook , "Gustavo A. R. Silva" , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-hardening@vger.kernel.org, llvm@lists.linux.dev, Krzysztof Kozlowski X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=7024; i=krzysztof.kozlowski@oss.qualcomm.com; h=from:subject:message-id; bh=sMLN/7ZBA2P0C1881XG/mSB/uFAs4yEuNbwucOSQHKk=; b=owEBbQKS/ZANAwAKAcE3ZuaGi4PXAcsmYgBplvOY5cA/feqbe9rvzIDKDL7Qpbm2bFuPWfPSY 9T0ZWTRZFSJAjMEAAEKAB0WIQTd0mIoPREbIztuuKjBN2bmhouD1wUCaZbzmAAKCRDBN2bmhouD 1zoiD/9dC38H15MV/QMCaANwKiwL/JatPkLP7TNRvJ88xastlsXzFSPEwFJp3L9DtbGJOBkqWiA sF7HIlc2Sf9xINNV5UN6n72HkadHHp24tUr9N02/4MC6+wd8UqIBtmGiZ2wy0GlSbrmTC+bbA1d OBOSU7sGAa2BOrIiqPMaXohj1xDdzpE6S/huoFBnRMdoNLeEB57dCvU7RYjs1SOTduYFjrcoO5W 3HsUKqkFtjoH9BzSzjgSFvZ97juKc4bic5Lk9v3SQY8FDn5CQzg22fl8+dnVrUjePuSpd2TYT/2 C1bnRXycAsmdwBxGmQQUqdfVevX0ClEXDUdl+0uhhL86O6KY1Yf8e+qf5BXsJT02Bf+WrfJU03u IB3oKJU5E7C/CNAJRQandkdJOWl37MqXrVjMAOGKfjEhSWlt0pcjGB4871/zJxmsIoLaxWhRX/Y AixdV18ReBbuCtEEUuiLLv4dzJ2HtFORaR7DitaWgAiskMdHdRg6tGvly8H5UZpL/WPWYeFCLlx /wn09R6nfXhcSWUNOUE3CXxepPmCnuVwyOUDfjFJ0P+Nh2WSrfFrpcAHknt3IG4lL0jqASBKkVT Ad/HXweYA07hJ42K/4GSK6k/pX18QSD3+pi6j9xiQ67YpwVJSJY/TToZDRHpiYVGfn6rk0+lBMK kuEvko5lxhmmmZg== X-Developer-Key: i=krzysztof.kozlowski@oss.qualcomm.com; a=openpgp; fpr=9BD07E0E0C51F8D59677B7541B93437D3B41629B X-Authority-Analysis: v=2.4 cv=Zo3g6t7G c=1 sm=1 tr=0 ts=6996f3a0 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=6nO30s3o7FuWeffXwhKHTA==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=EUspDBNiAAAA:8 a=OVqkz_Oto1G4WS9Ues4A:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjE5MDEwNSBTYWx0ZWRfX3Wr0Eb9V5wUP 11PJ8Of5J5jMw1xk9N3eFgdHeaKusbNBSSvYTbevfwn2eCpc/4cS2bnduR2Uz/bKf+TzfB9BvlI /iXRg/rO8UtyD7pbD7jjsxSCfiyNTLjonzFie1uXS8Voolj7vwX68V+gTqyQapmaRevsUKS0nE7 0qst97g5u+sC2k601TJwmmFtLt40bCsFTHqmO6FwfLfhCVGEn5CIRqL5+1VhIRINyMLolFe+rBU u7BSuHtsWMCu+w0E1GHnE/Bw3ReS1/oT2FSPo2Np/m/UlBmoii/elNFVKCNnDKux7nhinoUHYYu t2b6HPF5fNzLlNu7C60HfLKVxY9oNa1sPHu3yGU0/JA9ME8L955eoBKvUlfIskwj1CP8wV+n42y Cw3rhtq5Viydzn+lDgH764BE951WQHNdS+ql/71XVPia/lKVz3tkdGQRH/hmkv4PdeBSm9TGwTz XrXa3jYKdwwV9fh69xQ== X-Proofpoint-ORIG-GUID: dKiotXLdePYs4pNUrabht6BBc45Kjqq3 X-Proofpoint-GUID: dKiotXLdePYs4pNUrabht6BBc45Kjqq3 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-19_03,2026-02-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 suspectscore=0 phishscore=0 clxscore=1015 adultscore=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602190105 Struct acpm_xfer holds two buffers with u32 commands - rxd and txd - and counts their size by rxlen and txlen. "len" suffix is here ambiguous, so could mean length of the buffer or length of commands, and these are not the same since each command is u32. Rename these to rxcnt and txcnt, and change their usage to count the number of commands in each buffer. This will have a benefit of allowing to use __counted_by_ptr later. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Tudor Ambarus --- drivers/firmware/samsung/exynos-acpm-dvfs.c | 9 +++++---- drivers/firmware/samsung/exynos-acpm-pmic.c | 14 +++++++------- drivers/firmware/samsung/exynos-acpm.c | 14 +++++++------- drivers/firmware/samsung/exynos-acpm.h | 4 ++-- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/drivers/firmware/samsung/exynos-acpm-dvfs.c b/drivers/firmware= /samsung/exynos-acpm-dvfs.c index 1c5b2b143bcc..485fc77ad4b1 100644 --- a/drivers/firmware/samsung/exynos-acpm-dvfs.c +++ b/drivers/firmware/samsung/exynos-acpm-dvfs.c @@ -5,6 +5,7 @@ * Copyright 2025 Linaro Ltd. */ =20 +#include #include #include #include @@ -25,11 +26,11 @@ static void acpm_dvfs_set_xfer(struct acpm_xfer *xfer, = u32 *cmd, size_t cmdlen, { xfer->acpm_chan_id =3D acpm_chan_id; xfer->txd =3D cmd; - xfer->txlen =3D cmdlen; + xfer->txcnt =3D cmdlen; =20 if (response) { xfer->rxd =3D cmd; - xfer->rxlen =3D cmdlen; + xfer->rxcnt =3D cmdlen; } } =20 @@ -50,7 +51,7 @@ int acpm_dvfs_set_rate(const struct acpm_handle *handle, u32 cmd[4]; =20 acpm_dvfs_init_set_rate_cmd(cmd, clk_id, rate); - acpm_dvfs_set_xfer(&xfer, cmd, sizeof(cmd), acpm_chan_id, false); + acpm_dvfs_set_xfer(&xfer, cmd, ARRAY_SIZE(cmd), acpm_chan_id, false); =20 return acpm_do_xfer(handle, &xfer); } @@ -70,7 +71,7 @@ unsigned long acpm_dvfs_get_rate(const struct acpm_handle= *handle, int ret; =20 acpm_dvfs_init_get_rate_cmd(cmd, clk_id); - acpm_dvfs_set_xfer(&xfer, cmd, sizeof(cmd), acpm_chan_id, true); + acpm_dvfs_set_xfer(&xfer, cmd, ARRAY_SIZE(cmd), acpm_chan_id, true); =20 ret =3D acpm_do_xfer(handle, &xfer); if (ret) diff --git a/drivers/firmware/samsung/exynos-acpm-pmic.c b/drivers/firmware= /samsung/exynos-acpm-pmic.c index 44265db34ae6..26a9024d8ed8 100644 --- a/drivers/firmware/samsung/exynos-acpm-pmic.c +++ b/drivers/firmware/samsung/exynos-acpm-pmic.c @@ -63,8 +63,8 @@ static void acpm_pmic_set_xfer(struct acpm_xfer *xfer, u3= 2 *cmd, size_t cmdlen, { xfer->txd =3D cmd; xfer->rxd =3D cmd; - xfer->txlen =3D cmdlen; - xfer->rxlen =3D cmdlen; + xfer->txcnt =3D cmdlen; + xfer->rxcnt =3D cmdlen; xfer->acpm_chan_id =3D acpm_chan_id; } =20 @@ -86,7 +86,7 @@ int acpm_pmic_read_reg(const struct acpm_handle *handle, int ret; =20 acpm_pmic_init_read_cmd(cmd, type, reg, chan); - acpm_pmic_set_xfer(&xfer, cmd, sizeof(cmd), acpm_chan_id); + acpm_pmic_set_xfer(&xfer, cmd, ARRAY_SIZE(cmd), acpm_chan_id); =20 ret =3D acpm_do_xfer(handle, &xfer); if (ret) @@ -119,7 +119,7 @@ int acpm_pmic_bulk_read(const struct acpm_handle *handl= e, return -EINVAL; =20 acpm_pmic_init_bulk_read_cmd(cmd, type, reg, chan, count); - acpm_pmic_set_xfer(&xfer, cmd, sizeof(cmd), acpm_chan_id); + acpm_pmic_set_xfer(&xfer, cmd, ARRAY_SIZE(cmd), acpm_chan_id); =20 ret =3D acpm_do_xfer(handle, &xfer); if (ret) @@ -159,7 +159,7 @@ int acpm_pmic_write_reg(const struct acpm_handle *handl= e, int ret; =20 acpm_pmic_init_write_cmd(cmd, type, reg, chan, value); - acpm_pmic_set_xfer(&xfer, cmd, sizeof(cmd), acpm_chan_id); + acpm_pmic_set_xfer(&xfer, cmd, ARRAY_SIZE(cmd), acpm_chan_id); =20 ret =3D acpm_do_xfer(handle, &xfer); if (ret) @@ -199,7 +199,7 @@ int acpm_pmic_bulk_write(const struct acpm_handle *hand= le, return -EINVAL; =20 acpm_pmic_init_bulk_write_cmd(cmd, type, reg, chan, count, buf); - acpm_pmic_set_xfer(&xfer, cmd, sizeof(cmd), acpm_chan_id); + acpm_pmic_set_xfer(&xfer, cmd, ARRAY_SIZE(cmd), acpm_chan_id); =20 ret =3D acpm_do_xfer(handle, &xfer); if (ret) @@ -229,7 +229,7 @@ int acpm_pmic_update_reg(const struct acpm_handle *hand= le, int ret; =20 acpm_pmic_init_update_cmd(cmd, type, reg, chan, value, mask); - acpm_pmic_set_xfer(&xfer, cmd, sizeof(cmd), acpm_chan_id); + acpm_pmic_set_xfer(&xfer, cmd, ARRAY_SIZE(cmd), acpm_chan_id); =20 ret =3D acpm_do_xfer(handle, &xfer); if (ret) diff --git a/drivers/firmware/samsung/exynos-acpm.c b/drivers/firmware/sams= ung/exynos-acpm.c index 0cb269c70460..c616ac951a0d 100644 --- a/drivers/firmware/samsung/exynos-acpm.c +++ b/drivers/firmware/samsung/exynos-acpm.c @@ -205,7 +205,7 @@ static void acpm_get_saved_rx(struct acpm_chan *achan, rx_seqnum =3D FIELD_GET(ACPM_PROTOCOL_SEQNUM, rx_data->cmd[0]); =20 if (rx_seqnum =3D=3D tx_seqnum) { - memcpy(xfer->rxd, rx_data->cmd, xfer->rxlen); + memcpy(xfer->rxd, rx_data->cmd, xfer->rxcnt * sizeof(*xfer->rxd)); clear_bit(rx_seqnum - 1, achan->bitmap_seqnum); } } @@ -258,8 +258,7 @@ static int acpm_get_rx(struct acpm_chan *achan, const s= truct acpm_xfer *xfer) =20 if (rx_data->response) { if (rx_seqnum =3D=3D tx_seqnum) { - __ioread32_copy(xfer->rxd, addr, - xfer->rxlen / 4); + __ioread32_copy(xfer->rxd, addr, xfer->rxcnt); rx_set =3D true; clear_bit(seqnum, achan->bitmap_seqnum); } else { @@ -269,8 +268,7 @@ static int acpm_get_rx(struct acpm_chan *achan, const s= truct acpm_xfer *xfer) * clear yet the bitmap. It will be cleared * after the response is copied to the request. */ - __ioread32_copy(rx_data->cmd, addr, - xfer->rxlen / 4); + __ioread32_copy(rx_data->cmd, addr, xfer->rxcnt); } } else { clear_bit(seqnum, achan->bitmap_seqnum); @@ -425,7 +423,9 @@ int acpm_do_xfer(const struct acpm_handle *handle, cons= t struct acpm_xfer *xfer) =20 achan =3D &acpm->chans[xfer->acpm_chan_id]; =20 - if (!xfer->txd || xfer->txlen > achan->mlen || xfer->rxlen > achan->mlen) + if (!xfer->txd || + (xfer->txcnt * sizeof(*xfer->txd) > achan->mlen) || + (xfer->rxcnt * sizeof(*xfer->rxd) > achan->mlen)) return -EINVAL; =20 if (!achan->poll_completion) { @@ -448,7 +448,7 @@ int acpm_do_xfer(const struct acpm_handle *handle, cons= t struct acpm_xfer *xfer) =20 /* Write TX command. */ __iowrite32_copy(achan->tx.base + achan->mlen * tx_front, - xfer->txd, xfer->txlen / 4); + xfer->txd, xfer->txcnt); =20 /* Advance TX front. */ writel(idx, achan->tx.front); diff --git a/drivers/firmware/samsung/exynos-acpm.h b/drivers/firmware/sams= ung/exynos-acpm.h index 2d14cb58f98c..422fbcac7284 100644 --- a/drivers/firmware/samsung/exynos-acpm.h +++ b/drivers/firmware/samsung/exynos-acpm.h @@ -10,8 +10,8 @@ struct acpm_xfer { const u32 *txd; u32 *rxd; - size_t txlen; - size_t rxlen; + size_t txcnt; + size_t rxcnt; unsigned int acpm_chan_id; }; =20 --=20 2.51.0 From nobody Fri Apr 17 12:01:18 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5143033F36B for ; Thu, 19 Feb 2026 11:27:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771500451; cv=none; b=DNImn5JN9ecKpkrLm0MsFk4lVhbatqlyAbSRkIIUFKuqIDFxLY7Xw5oJM2a2N1YMh0M5bk97WFGhQgCDogkkAlJ9JnALtf/tmRKzkHuUJGQ5hpAFzejoctKJsBmkIBIYcGETovj0CMoM/Wlx31YAoPRNXsX2fvpEVI5vM8LVyMo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771500451; c=relaxed/simple; bh=zCBD0xdOOxAVkq3+Kty451D4UNd0wOLSkX5sEdRZvAM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dS218j1Dqf/0PkZfIb6g1elb1N+QS8R5mFxNLXeYUrECmEOR+8BUbEqJDsT56qQUy1aQNSuaahjAH0DwkSDiqouB/R2j+HXIMuRqWl5WyA8Om5J5+gFYpqkrlZmAvN5E217Ubplj8uVX1aeRdNUu7ArvF41kgUSRGV2fWB9+yQQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=XhScXMMZ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=YaTUOKjx; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="XhScXMMZ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="YaTUOKjx" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61JBK8jR1924573 for ; Thu, 19 Feb 2026 11:27:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= APi20n/l37iYWJiXfjjXLQ9MMk0Sl+PXW/Y+golBnjM=; b=XhScXMMZSM80so36 WnyFaoXB0dFjX8C27H+MfBBRFv6j24aoOEvNWFPCGIhJAUYuQe/FGrATJIm2mD9I fQG4t3JrVfempIeNEDw6vjX2Z4seJ8sMZXcc6bdluC2PMI8Oho5KqhLN4LBfjA6U keFYEO3spxKKvEaUNxOmE3vvnw9Kzv5/ETO5/HET1+zSO1KaVcBswkjyaNqQo7e1 jSNEeOifo+b+O4o2hHbNRvDvFwpuB6OdxSMZzkFQ8/hFbQeUUzcqrJUcQ677oEzs Ks+vr+ci7r//V+4h81K6zTTsoeajTEKPITs762bo3Qv0SoSGGoHdpevIlT/XqDUI 6654ig== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cdqdg9f0r-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 19 Feb 2026 11:27:29 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-8cb4e37a796so527667585a.2 for ; Thu, 19 Feb 2026 03:27:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1771500449; x=1772105249; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=APi20n/l37iYWJiXfjjXLQ9MMk0Sl+PXW/Y+golBnjM=; b=YaTUOKjxPX0jsEPxQM2CFLJmaDxOWTgmQ4KR96vJFa4BD5HSzw/7aApKSY1syFHlHf wYd8pYE4vMNclvYaOOSS2ewqx6ADccdfD4hw5mmrhEyvOF1060fcyrUlF65+D43cIXVZ VaPb/crorSbuywnVod3J50GbAb+LWTQ8pOUCAuDrhlZuLtltdsr57QKE2Ttpp1vnwEYJ UtYCtaCuQ0MbAUsGQCcAL0iZoS4oDtQTVPFGYLG5lt9iEf6roxeYHt+ptOJBd2k7A37w t8h0BSdp85YfK6KiqjRd721olKvwJdx4y83OLdFLSu8SYH/cVi3PMb7ep6Tlc4ZiijI0 ZKYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771500449; x=1772105249; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=APi20n/l37iYWJiXfjjXLQ9MMk0Sl+PXW/Y+golBnjM=; b=akf2C4XzhTJkUJU+ju19QscoGSNveEsCi35nOklBDceAXtZ6vvCA6NhP8XoOwVNsd2 ADGvPv7CNIeaAZeNPKDplOq+QvNJghLZzltl6iSrw25ew+UJydLKCiOyeSFp6xFG7c18 LXBx5E9jrRREu3W4SsL5Ng1us56dnbgfPte/NlIq4AvpyLvUaFDbycQAu0tVVgCPSg4a pGL0GaFmz+w62mnut4OBCWRqfoE6v1KoS9v5ZKdtyeMwPsz1CSpADY1LARz2jUYzdJ9R jrG3ytc+KX1sW5io26nucPlih9YoBBITr+PjSVduOVlew/8GA2b60xgeXZ/ZS0KdslZB h1bg== X-Gm-Message-State: AOJu0Yyvr716iIpXsTtfRYEU+4Gb8kKRwkanpfJGnDBmCcRJbgotL08a ygO6sA37MlpUzJodtWxyM5a0ukEn8Y/YPIOwUv13c9vDhqATyoI4MGvI+2/B2xkuuWS3rBYdH7/ sFuy5vKqJemu/EmkToVCAbnwoXvTwEz0zDxeTa+RxSPklosrPJvYXwg4BO3bXVoJAh8w= X-Gm-Gg: AZuq6aJi3sX34laJc2Um237YkkXKwgAMkjKvivD9yH9XuhHxu5psHX8Nud4G948I7HP EnOPrue3KX0YDgKgU2sms4PUvDUMQ3qpk6J9NO38qRexCucBU8t3TXekPkKHzaxv68lBpG8qVib 2W0n60RSvM0Y2bgN0cYXnBmMPL9HMZEMhoWuxM3JlLkrHHuPjIky4URCfQw61QPAgaz5fpA3FnT /MRrxDqU1HFDU7T9WKuBObwwBLWqG3thOMf6WVYeovSIvOzKfhRplCYnOABaAGJfFsNmi2M9Gro rDEESLK0jB4jLxx571nMMuLSMtf3IqlfTNp9nm4AM9ly5yuOSqVoXTKlSXGWVkyWECTSozj6VQD DHURIAyaP9Jfbw6HNFo3j2JnDHl4tCAXYd+QAvd4uvr/NlQ== X-Received: by 2002:a05:620a:4050:b0:8ca:110b:38cc with SMTP id af79cd13be357-8cb79eaa527mr233566185a.27.1771500448595; Thu, 19 Feb 2026 03:27:28 -0800 (PST) X-Received: by 2002:a05:620a:4050:b0:8ca:110b:38cc with SMTP id af79cd13be357-8cb79eaa527mr233563285a.27.1771500448054; Thu, 19 Feb 2026 03:27:28 -0800 (PST) Received: from [127.0.1.1] ([178.197.223.140]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43796ac8d82sm48903796f8f.31.2026.02.19.03.27.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Feb 2026 03:27:27 -0800 (PST) From: Krzysztof Kozlowski Date: Thu, 19 Feb 2026 12:27:12 +0100 Subject: [PATCH v2 3/3] firmware: exynos-acpm: Count acpm_xfer buffers with __counted_by_ptr Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260219-firmare-acpm-counted-v2-3-e1f7389237d3@oss.qualcomm.com> References: <20260219-firmare-acpm-counted-v2-0-e1f7389237d3@oss.qualcomm.com> In-Reply-To: <20260219-firmare-acpm-counted-v2-0-e1f7389237d3@oss.qualcomm.com> To: Tudor Ambarus , Krzysztof Kozlowski , Alim Akhtar , Kees Cook , "Gustavo A. R. Silva" , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-hardening@vger.kernel.org, llvm@lists.linux.dev, Krzysztof Kozlowski X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2018; i=krzysztof.kozlowski@oss.qualcomm.com; h=from:subject:message-id; bh=zCBD0xdOOxAVkq3+Kty451D4UNd0wOLSkX5sEdRZvAM=; b=owEBbQKS/ZANAwAKAcE3ZuaGi4PXAcsmYgBplvOYR+uIJFtIIdp6LnUeRbEBpg7ukZrE/s5l0 d3KGKa0XRGJAjMEAAEKAB0WIQTd0mIoPREbIztuuKjBN2bmhouD1wUCaZbzmAAKCRDBN2bmhouD 1ysFD/46Y0DA3bcXwkxOFVHsKp7iSZnFhERCvqZl17T0vKZNNWjTABwQuIxbBPNoDj9ws99LD2v playnm935S92hlxRsUetG+gFNO/peGx14B57I4FLcjkJK6FZSifoOv1KcraTIramzWtaAhMD7Ij 9ElzKIFPv+NbA/cIAIHe2JEJ94lUqge3z72ZQN8+LvPYs+1cbFvBA7uGr2W7jfQn6IhvdisVmhQ 1K4db+SJ8LT7rt0kge1BC5SzzRUIKx4xs4xGATBfoW/IJCY8qLrkStwQVDdjYNKVBOReBPhdq7U q67HNBxfpEaABG9dSAzlENwpU8clUjaOjU5QTeC09Ye+VuvAL1K9XUiHRDZeCDlm9ixctMgsk4N RFNnP4CPtKRHja3Gqy1pY+lkS3z6k/RtqplMScyUpSOVuTMQTpwg59aVvYEwsBK3CzeGG04XPZ4 okqpW4KEhEb1q/ucVUsRJIfpSOGE37BonoWlG+vy0Sf0qmjNbeEq0D4OMyLm9f1sSvsnc/E/+8P F/J/6x7P51kYFRh0Ba/AxMIXzVaKuobTj2lNksnz2wXje2fv4CjA/JrMWfv9tT274yYs3tlfYOp WQlK8coRaNm23oLWIKNJrHveXD4lNEaKJj+VSKpKwu68EqsSp42YXREkVYQjPcylVR+jNLst5yf GSAaRTlEzbfHHlQ== X-Developer-Key: i=krzysztof.kozlowski@oss.qualcomm.com; a=openpgp; fpr=9BD07E0E0C51F8D59677B7541B93437D3B41629B X-Proofpoint-ORIG-GUID: Wi4zUKMiL4aWCcUf1r3uU--z_dHrCIu9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjE5MDEwNSBTYWx0ZWRfX1L+x0KAmzUa6 0mR1bLckE7UNEywlG+CbzrZJTa42F4ZJFHUfopLRlSpNDbmGSKFo0MMIYov6SprTDSegxS/0VPF c1eCPjFIOshPWJLewH2qcEQN7zgq4Y//k99d/OguP1TggWRdqgXSseIALWulvPTvwF4CEaaZHmJ jBL/Z7aU5crlvDFVt0bwagkxieSNkR2gXhlNn3ICouNxOnjFNPrtRcr7J8FB4VTNi1OZOWh/WNm s1Yp92i0PgZxEztjLhkwv3F9kpK5JPiXTrd7uy1jysTISYaEPi1Dq4CUZOcjB+FfMXe3+Y4kltu 2CxwLH/bsNXvytqv46NcRciBKiBdhZ0z8yN6rlqu2IprciyiaepOO2G2CMV1NBzYAwmJ0BTOQYd WPVCVKh9RY9eIp2tA3Xayt2NSLpSLiC52f5AjoiAGba0ENZ/KM1aF8OfpjXcuzLHdx7uLg1Bp0y l5rWHFcYE6zK+BCeH1A== X-Proofpoint-GUID: Wi4zUKMiL4aWCcUf1r3uU--z_dHrCIu9 X-Authority-Analysis: v=2.4 cv=W/M1lBWk c=1 sm=1 tr=0 ts=6996f3a1 cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=6nO30s3o7FuWeffXwhKHTA==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=S5Eq-Qd902Z19Fn_UHYA:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-19_03,2026-02-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 adultscore=0 malwarescore=0 clxscore=1015 suspectscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602190105 Use __counted_by_ptr() attribute on the acpm_xfer buffers so UBSAN will validate runtime that we do not pass over the buffer size, thus making code safer. Usage of __counted_by_ptr() (or actually __counted_by()) requires that counter is initialized before counted array. Tested-by: Tudor Ambarus Reviewed-by: Tudor Ambarus Signed-off-by: Krzysztof Kozlowski --- __counted_by_ptr() actually maps to __counted_by() for clang v20. Alternatively we could introduce new __sized_by(), already supported by clang v20, but it is not available for GCC, AFAIU. RFT, testing would need clang=3D20+ with COMNFIG_UBSAN and CONFIG_UBSAN_BOUNDS enabled. --- drivers/firmware/samsung/exynos-acpm-dvfs.c | 4 ++-- drivers/firmware/samsung/exynos-acpm.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/firmware/samsung/exynos-acpm-dvfs.c b/drivers/firmware= /samsung/exynos-acpm-dvfs.c index 485fc77ad4b1..17e7be7757b3 100644 --- a/drivers/firmware/samsung/exynos-acpm-dvfs.c +++ b/drivers/firmware/samsung/exynos-acpm-dvfs.c @@ -25,12 +25,12 @@ static void acpm_dvfs_set_xfer(struct acpm_xfer *xfer, = u32 *cmd, size_t cmdlen, unsigned int acpm_chan_id, bool response) { xfer->acpm_chan_id =3D acpm_chan_id; - xfer->txd =3D cmd; xfer->txcnt =3D cmdlen; + xfer->txd =3D cmd; =20 if (response) { - xfer->rxd =3D cmd; xfer->rxcnt =3D cmdlen; + xfer->rxd =3D cmd; } } =20 diff --git a/drivers/firmware/samsung/exynos-acpm.h b/drivers/firmware/sams= ung/exynos-acpm.h index 422fbcac7284..8392fcb91f45 100644 --- a/drivers/firmware/samsung/exynos-acpm.h +++ b/drivers/firmware/samsung/exynos-acpm.h @@ -8,8 +8,8 @@ #define __EXYNOS_ACPM_H__ =20 struct acpm_xfer { - const u32 *txd; - u32 *rxd; + const u32 *txd __counted_by_ptr(txcnt); + u32 *rxd __counted_by_ptr(rxcnt); size_t txcnt; size_t rxcnt; unsigned int acpm_chan_id; --=20 2.51.0