From nobody Tue Jun 16 06:34:55 2026 Received: from mx0a-002e3701.pphosted.com (mx0a-002e3701.pphosted.com [148.163.147.86]) (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 9988F3203B6; Thu, 16 Apr 2026 21:59:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.147.86 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776376793; cv=fail; b=O7dPgYZNIxmmYMdxkFdjaQ0rCL4Cr9wc+jV23rEeJ35p385c5h1QtrMYUsSesUaFzdgKK4n7F3riLULrNTdpr5zppSUr4qW7j3MLJMmkvYYY39MW1J/V9ATzeUNqiCI4EmlAUlIBdU+KWPp+8ChI1pvipVauavAogijsu/sGF7U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776376793; c=relaxed/simple; bh=oETJ07LXbdtGRv5hqr0DF0lsODZ0d+VD5YYoWO1HpN8=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=o2Dqq0qij5bDUUABs6Nxp3jFEEDLJpqo2/OISwFU5tOtwTxMlp2UW7eHfdnsuJ+skkpKTcrz8Cx35m1QaGU5hiE0FUVbJ+m4ERwSXrDNJQJTDex9MENNGQL+k7bEPbB3E6Opf+2LDO1dZEpgKCHxrDG939PPyfmZtzOdwedBgto= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=hpe.com; spf=pass smtp.mailfrom=hpe.com; dkim=pass (2048-bit key) header.d=hpe.com header.i=@hpe.com header.b=W2nPO1DL; arc=fail smtp.client-ip=148.163.147.86 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=hpe.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=hpe.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=hpe.com header.i=@hpe.com header.b="W2nPO1DL" Received: from pps.filterd (m0134421.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63GK3AmR2714091; Thu, 16 Apr 2026 21:59:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps0720; bh=IE s6xCP2+LNw63xeVefbV/Td78gCYsJKkGh4xxR2Y8o=; b=W2nPO1DLg8mbV3jehn FfBGEvmHLJpj2dGlv+o75+C3B9nrzk2FK1FDInTmaCqHgnghe07YvL1bbGopwaQ8 qGQ1MIjhMBefEz308qhejGJ6CHp+0kNoDIpZL0oXY4FEFID0PacRZiBneliSQSoD 3SVVCPGGn78k/N7DUVTJF53vfZVwd2uX/uvGd0ZDSCmAroNVc2JbTjJWi5e5cwT0 ncSYKSTUZfUB6q5MUBhePCo0vDBNliepvHyYKsubybfZD6+NZ4AE7Xb6nZEIJ+Vd BNbalzpmHR3ycF3rttYKqtPxnwUpvL5Lx0wOQiYxemb1UY/whCiE58AxCj8aIu3y t0rA== Received: from p1lg14879.it.hpe.com (p1lg14879.it.hpe.com [16.230.97.200]) by mx0b-002e3701.pphosted.com (PPS) with ESMTPS id 4djxwfyht8-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Apr 2026 21:59:34 +0000 (GMT) Received: from p1wg14926.americas.hpqcorp.net (unknown [10.119.18.115]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by p1lg14879.it.hpe.com (Postfix) with ESMTPS id 9F981267; Thu, 16 Apr 2026 21:59:33 +0000 (UTC) Received: from p1wg14927.americas.hpqcorp.net (10.119.18.117) by p1wg14926.americas.hpqcorp.net (10.119.18.115) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 16 Apr 2026 09:59:33 -1200 Received: from p1wg14927.americas.hpqcorp.net (10.119.18.117) by p1wg14927.americas.hpqcorp.net (10.119.18.117) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 16 Apr 2026 09:59:33 -1200 Received: from p1wg14920.americas.hpqcorp.net (16.230.19.123) by p1wg14927.americas.hpqcorp.net (10.119.18.117) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17 via Frontend Transport; Thu, 16 Apr 2026 09:59:33 -1200 Received: from BL2PR08CU001.outbound.protection.outlook.com (192.58.206.38) by edge.it.hpe.com (16.230.19.123) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 16 Apr 2026 09:59:32 -1200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vtOn87wVbCi+pU7wvFfKMeOkU5c44jOhcVTaj4kU4CvDiQE+9A3OBQj0vU/GzpALWAf2QJhlCC5M9P0Xq9r19YXAwkDpD6qCvYL4m48Y51vmlOKss5w7zxVHKXjnDw+Rgzz1R+U10+LldH7wj04XahC9Nydsq8cS/w3WRjzUSC76+ELbNTTMKsCg41k6tpMxEMrmiN20RxBqiun/veYYFXfY+IAolG+9bUG4FbeyGsHwFKsXD4Fb4i7ltqpwssD50u2JD6Mn7jD2/VamNcTXxi3zdR2Uryc5EQJH8Wdm07F+169WsEr4JV/M/oRJSHUoeih/PiBf0r/0eRik3StFcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IEs6xCP2+LNw63xeVefbV/Td78gCYsJKkGh4xxR2Y8o=; b=toEYUOSPJwNo00Bb10vxtjcIsJGbwjOrLhwkuLwvSJex2vbM8DOc9tt8Oqow3221AhV1kkdDdEK6SeBnlahjoGN96sFdk2zd+HvT8H2OEyMAnggv5bbpAv1Oybm9rr96ccKTmFeoTHmzOy7kjra/oIiq5SLBzz+qO1mBhjoLl1od+RQA4CK6Lm6qbidBH+QWcI+3Xb8s8vD0L02DxIwEt290HY919JMmDhx7GXCkuvCkZgWdl91Vkuct4KWl3RUI1fq6p/Cd/BKQMx7/Ad7tM65K0caiMsLFXaBUUAEm5yU2Vkjh7167Gpar2H/KqwjG20MjYwj/aiE8tH5eV+nCIg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none Received: from LV8PR84MB3535.NAMPRD84.PROD.OUTLOOK.COM (2603:10b6:408:203::11) by PH7PR84MB3250.NAMPRD84.PROD.OUTLOOK.COM (2603:10b6:510:1ad::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.48; Thu, 16 Apr 2026 21:59:30 +0000 Received: from LV8PR84MB3535.NAMPRD84.PROD.OUTLOOK.COM ([fe80::fce6:5af1:e04e:caf6]) by LV8PR84MB3535.NAMPRD84.PROD.OUTLOOK.COM ([fe80::fce6:5af1:e04e:caf6%4]) with mapi id 15.20.9818.023; Thu, 16 Apr 2026 21:59:30 +0000 From: "Pradhan, Sanman" To: "linux-hwmon@vger.kernel.org" CC: "linux@roeck-us.net" , "alexandru.tachici@analog.com" , "linux-kernel@vger.kernel.org" , Sanman Pradhan , "stable@vger.kernel.org" Subject: [PATCH 1/2] hwmon: (ltc2992) Clamp threshold writes to hardware range Thread-Topic: [PATCH 1/2] hwmon: (ltc2992) Clamp threshold writes to hardware range Thread-Index: AQHczexNjyghzGFYcUu1C13GFiC2Vw== Date: Thu, 16 Apr 2026 21:59:30 +0000 Message-ID: <20260416215904.101969-2-sanman.pradhan@hpe.com> References: <20260416215904.101969-1-sanman.pradhan@hpe.com> In-Reply-To: <20260416215904.101969-1-sanman.pradhan@hpe.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: LV8PR84MB3535:EE_|PH7PR84MB3250:EE_ x-ms-office365-filtering-correlation-id: 8a5029ac-9299-4393-1ac5-08de9c036fdd x-ld-processed: 105b2061-b669-4b31-92ac-24d304d195dc,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|38070700021|56012099003|22082099003; x-microsoft-antispam-message-info: gbSRhHQnVHpEDIVuee8Bibthn3P8tViEt3IjZNNU+U23suDjwIdULGSNd/71vs3oFClDNL4XRjkV5JQLToC0uArlWJMn/0GLxopT/HRH3VGsPwRO7Yinhlmt4X30LXrdvrY+PL9m9C3O0ZkybtxbsKNP10yN34yQHywbs4e64/r3LXMLAa01ZJxgW+L+5z5SMRW+tYge3Fy77pq5St7K/vCPhEvlCk+yqbHljLbihe75m+bq9Rcg/cJCj/BuURn/rXBKVyBxRwYXYjwGeyRdk61ojQo3aedoIYwGrE0+rUu509v9xeGpgOUQehhg6tajKdXchF61EcY+UGz7s7SYuk/0JRoRoP80OBYruyjToGZvcpl47Bd2ILA3swxZ6kLC54YiYIjDVCOFQONJniow+Z7OlMJgJp/OmUuidc3mDt1RFhlGDnl5T7QM9NobJYxAPwhC0nba8qTPLbuIXh96JEOGFWFaca3FyTVbnJtdT9xor+pDCkO0fnlb2xpfYgvTbNArAf7M8Eks+jGN8lqI6iSiil9QHrZ7bqxluRrMoPXg7IIuKM8lhG0naFkAjIYkPjQPVU/F8LrGTiaITlQtrBaQCSLOfjSYxtXjpny1fXLID1LLnU8EpZMnvbWXosnw4VCSlcYy+QB9J+sBjRWZY5KlXFptVlEWbcwcrtMeHQrgfj6P2BBYTWqhd7QLcNx/x99NjsQJw6j4sqY2tPeWFPElvHZJBYYuaTIMPyjgbCwQe9fzN5DPvkn8dlB7P+xF78w84kb5YaKsYSHG8pHWKGseLu5Zl4t6HPoAlErftps= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV8PR84MB3535.NAMPRD84.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(18002099003)(38070700021)(56012099003)(22082099003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?M+2PoBU8y/ZB/kX3X+1YmT6DGeTrZIzj/SGGFMKy7HYoKNfGYcczNbk/4D?= =?iso-8859-1?Q?HU9ad0W3W5d3U2SIrpQxWmekNiyG+BjVlLNHgpugLzZC/Toz/J/gY8UZwN?= =?iso-8859-1?Q?3SvXdTOr/KqRe3kh2FTMpK4Q+iXaQw+dfBDBhcjry1TmQeZr8fOekis8bA?= =?iso-8859-1?Q?Ct89stpE2mbRIY+ys2HfMJRACeV/Z5+Xl2t7DqmoS2HR+yhJgLQAE8TbBn?= =?iso-8859-1?Q?oHVOQbbEYSkQ3jW+LDk6Tx6bpV8dcnoGG1AfoCmsz9TD/nFRy84dHDfHO5?= =?iso-8859-1?Q?9afFg++B7WBcwCcZYwmkaWIct/T08Lb9y38Wk9Yd3nQ1NwoGW+p/5zqVyF?= =?iso-8859-1?Q?Tu+OAsjgFV+T850NuCd/pb6TTd1ggdYB9cHdGuddrEsIfcAFiUXoD47ia9?= =?iso-8859-1?Q?15KYiYdOqpNBZpb8J7J8cGfiezEKkpiDgeKM5g6tsCkP7vSPgLsa1jedUk?= =?iso-8859-1?Q?p1A4jUwgQQ4GPhG/+yujMaE4rlP9agrno4AKxX7+OXZWpPa5yYnZjqMCjf?= =?iso-8859-1?Q?6wF1RhJob7MZLWVTBEw5p4chqA0na+/wVMnmk1xN7WH14tysfxNVy2ddjw?= =?iso-8859-1?Q?uIFpod9q8uDouEgTvWWM2VCkcV0AeyOMSr4brBs89gC+LdnPtN7okY2OrI?= =?iso-8859-1?Q?bONVz1bshs86CPmsGl5RxIvtM/PIGhB7vMi0Ag2AVTOgjvuh5kO4GRdwsy?= =?iso-8859-1?Q?HBqfMIXOIiH/m1y8j7HSrD7gswusyOreWfC0IcLmOCu0MzGpMN8KdZ9bxX?= =?iso-8859-1?Q?Qk+Us4B7pw1ppIIJaZ88oZk+6ptlSrqls6raIAAIV8s8JpKVbacSfJnww2?= =?iso-8859-1?Q?6fwFC7G908PSDiErRQuGY1SJ6MbfHR4nMonaX3wV5FkVqWenOTg82c3UYz?= =?iso-8859-1?Q?jt967UrZwigfJSbYXaaGG+8x5u7hMi8Zy2HGp7UHy9sAB2/+sms4q1mlPH?= =?iso-8859-1?Q?8U2UH6F0Q/WobUrujgHUnVlD34NcSbk51LQpP4a26gL105l0POvfjcguub?= =?iso-8859-1?Q?CICnr6q+0IH6wL3IM06+oQuZtU4D08zZR9UTdr2hLmkPZH3bjwWpKkHK4x?= =?iso-8859-1?Q?0Q4v+Qibzhrq+3OjiNpt5+/jRWLuCX1wy9WsXIdUaPp2Prs6dsGOvJYyRM?= =?iso-8859-1?Q?hNbzCXogAhh22ehQ2NLL1JgA915bx68T4uGackNONiYPHDZJEmIkXpjI2U?= =?iso-8859-1?Q?8U02+8IHUHr4L42I6OLmso/x6jsNe+yf2/+vjJijtdz5QemAdvXDseBGy1?= =?iso-8859-1?Q?n+X5Fgv3MvfgvPgwvDloy9AZoDWrSC8x413a4O1h/Obmav8rikHTE71Mja?= =?iso-8859-1?Q?X53sGHlcnIfTxeZ6kM1TcUVdQ7/Sy0tjkbjgWgb1WQBhq78uuk5wnt/Thq?= =?iso-8859-1?Q?wPHz4VFrTCzf/lSrWfak6mqCwrAy00B6o2O6U9inUyznuvXZP2jl5yGdu3?= =?iso-8859-1?Q?LyijfhFzuFjrdkZMMVx5p6XLHxYudDHcCYDwDgXSfq77S7xe9saZVIo3PV?= =?iso-8859-1?Q?Mglfmc7TVueH9Q7Sq5AckvSLvuO33ORVTcBKZEhsiHMaj8/+Ov1M1HKYhx?= =?iso-8859-1?Q?IkMnyaVS1UGptgzEESiHguk4KQxG+rT8fl6AuHZH5WKgTMVtfNdoE4/n60?= =?iso-8859-1?Q?K6oyioVqIb05rZM+y8acxsSUR/50u6iMoRPxMwrzdwMExav9pK5f5eku7Z?= =?iso-8859-1?Q?hKoRt7P9GgQ3RrCxPBJyoG4ulG0kG3MhRgg7Up5hqT5idTUT3lw7Z/xFvo?= =?iso-8859-1?Q?g7gPsWlsyCePOxFTDDhnllzhQzYUs9VFCStKTjKqqRZHcLcnR0zUO4aWCf?= =?iso-8859-1?Q?6fFXuvfE8w=3D=3D?= Content-Transfer-Encoding: quoted-printable Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: lWII6j97i24GBhH86SJ2IBgEu8YjfCeNDwPcgcvYM7Ibzfn1E7gGrpYhANfMIqs0dwNx/ugpsI1HzqGIAJj7LiPRbsLoL/HeoiD53AH9djyLaO0Pagr6grxL4IrENePfLE2A/kTGvXs9d8vVJEWpjsLRJTObfJ9lRckPEfHvE9LO91JRTlZJdZ3vfLaRzQWIOXnJTEHnpBKhAuMfosbmyM/qU6g5qRbhUP8vvE/OnBPZRb27n8TYym1T70B0h+AXKwB0EdNzXedAnu7+hzxU3TQZZvR1BK1J9LsRg8KKaUZJO3/Vg7Lc1NfozyKB4JF/4ViJcwoH8qkQrhmSxsi2xw== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: LV8PR84MB3535.NAMPRD84.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 8a5029ac-9299-4393-1ac5-08de9c036fdd X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Apr 2026 21:59:30.8479 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: dxz6uAqBs3bRRrdC3geWNUzuxrpRLGAanKOLcPRRYduZ8jWDTo4RwimK/5FTeYomW/lg+Oz5j7/TU7Jzwjww1w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR84MB3250 X-OriginatorOrg: hpe.com X-Proofpoint-ORIG-GUID: d7ZnCzbElvp_UW_S9V94EJG9VX0C6WyV X-Authority-Analysis: v=2.4 cv=YMKvDxGx c=1 sm=1 tr=0 ts=69e15bc6 cx=c_pps a=5jkVtQsCUlC8zk5UhkBgHg==:117 a=5jkVtQsCUlC8zk5UhkBgHg==:17 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=8nJEP1OIZ-IA:10 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=gQcMVamqm3wCPoSYhaRC:22 a=ay80y3fxfMS_JZZz1qJy:22 a=OUXY8nFuAAAA:8 a=VwQbUJbxAAAA:8 a=9F0IhLLRAQ_6tfZunWoA:9 a=wPNLvfGTeEIA:10 a=cAcMbU7R10T-QSRYIcO_:22 X-Proofpoint-GUID: d7ZnCzbElvp_UW_S9V94EJG9VX0C6WyV X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDE2MDIwOCBTYWx0ZWRfX4orRzvAanuTI thN/bC9YWYshVKI5JKi7hPiEV6JJ06GIKnsUonCvMkhhfNVqCVeOtsubds4tAs8YOK4a5jHFZdz 8vM2wyMLvKf3dCK741nJLXkOePMvT2Mlej40GR/J0MWImK9PiQxAnE0xbbVgo+HeQSuv5Y9pqmJ z4ubQC51wsSpg8EGF5rAsmN41BWNNFD6REBxUHOOIU83iBUHj5ZXiR5FP6hoNRcjXcvrg0sD4Gh /U/fpkrSPgq6l25tHS+EhTPFJX5nGEyhZ4LPAwUjJP0kcMPT6zcGkJMvMsF1ztkdr01nzBVdevh S4YR3E/o2klcDn7yI8dkTm50GRspWHCFYQUigAfXEtZTMnfchUpgKXydqukAsk+RM/UN0PZZL5A xZ+PskPFb4+yDHetU79/REgSd1WsROkqkUx6kA4XGe5Lrn7cvnpKq5809zDyjBCvUpxunpR1BtB tootge8B3OqxyTj+aqA== X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-16_03,2026-04-16_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 malwarescore=0 impostorscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 spamscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604160208 Content-Type: text/plain; charset="utf-8" From: Sanman Pradhan ltc2992_set_voltage(), ltc2992_set_current(), and ltc2992_set_power() do not validate the user-supplied value before converting it to a register value. This can result in: 1. Negative input values wrapping to large positive register values. For power, the negative long is implicitly cast to u64 in mul_u64_u32_div(), producing an incorrect value. For voltage and current, the negative converted value wraps when passed to ltc2992_write_reg() as a u32. 2. Intermediate arithmetic exceeding the range representable in u64 on 64-bit platforms. In ltc2992_set_voltage(), (u64)val * 1000 can exceed U64_MAX when val is a large positive long. In ltc2992_set_current(), (u64)val * r_sense_uohm can overflow similarly. In ltc2992_set_power(), the computed value may not fit in u64. 3. Register values exceeding the hardware field width. Voltage and current threshold registers are 12-bit (stored left-justified in 16 bits), and power threshold registers are 24-bit. Without clamping, bits above the field width are truncated in ltc2992_write_reg(). Fix by clamping negative values to zero, clamping positive values to the rounded hardware-representable maximum (the value returned by the read path for a full-scale register) to prevent intermediate overflow, and clamping the converted register value to the hardware field width before writing. The existing conversion formula and rounding behavior are preserved. In the power write path, cancel the factor of 1000 from both the numerator (r_sense_uohm * 1000) and the denominator (VADC_UV_LSB * IADC_NANOV_LSB) to also eliminate a u32 overflow of r_sense_uohm * 1000 when r_sense_uohm exceeds about 4.29 ohms. Fixes: b0bd407e94b03 ("hwmon: (ltc2992) Add support") Cc: stable@vger.kernel.org Signed-off-by: Sanman Pradhan --- drivers/hwmon/ltc2992.c | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/drivers/hwmon/ltc2992.c b/drivers/hwmon/ltc2992.c index 1fcd320d61619..1069736196763 100644 --- a/drivers/hwmon/ltc2992.c +++ b/drivers/hwmon/ltc2992.c @@ -431,10 +431,16 @@ static int ltc2992_get_voltage(struct ltc2992_state *= st, u32 reg, u32 scale, lon =20 static int ltc2992_set_voltage(struct ltc2992_state *st, u32 reg, u32 scal= e, long val) { - val =3D DIV_ROUND_CLOSEST(val * 1000, scale); - val =3D val << 4; + u32 reg_val; + long vmax; + + vmax =3D DIV_ROUND_CLOSEST_ULL(0xFFFULL * scale, 1000); + val =3D max(val, 0L); + val =3D min(val, vmax); + reg_val =3D min(DIV_ROUND_CLOSEST_ULL((u64)val * 1000, scale), + 0xFFFULL) << 4; =20 - return ltc2992_write_reg(st, reg, 2, val); + return ltc2992_write_reg(st, reg, 2, reg_val); } =20 static int ltc2992_read_gpio_alarm(struct ltc2992_state *st, int nr_gpio, = u32 attr, long *val) @@ -559,9 +565,15 @@ static int ltc2992_get_current(struct ltc2992_state *s= t, u32 reg, u32 channel, l static int ltc2992_set_current(struct ltc2992_state *st, u32 reg, u32 chan= nel, long val) { u32 reg_val; + long cmax; =20 - reg_val =3D DIV_ROUND_CLOSEST(val * st->r_sense_uohm[channel], LTC2992_IA= DC_NANOV_LSB); - reg_val =3D reg_val << 4; + cmax =3D DIV_ROUND_CLOSEST_ULL(0xFFFULL * LTC2992_IADC_NANOV_LSB, + st->r_sense_uohm[channel]); + val =3D max(val, 0L); + val =3D min(val, cmax); + reg_val =3D min(DIV_ROUND_CLOSEST_ULL((u64)val * st->r_sense_uohm[channel= ], + LTC2992_IADC_NANOV_LSB), + 0xFFFULL) << 4; =20 return ltc2992_write_reg(st, reg, 2, reg_val); } @@ -634,9 +646,18 @@ static int ltc2992_get_power(struct ltc2992_state *st,= u32 reg, u32 channel, lon static int ltc2992_set_power(struct ltc2992_state *st, u32 reg, u32 channe= l, long val) { u32 reg_val; - - reg_val =3D mul_u64_u32_div(val, st->r_sense_uohm[channel] * 1000, - LTC2992_VADC_UV_LSB * LTC2992_IADC_NANOV_LSB); + u64 pmax, uval; + + uval =3D max(val, 0L); + pmax =3D mul_u64_u32_div(0xFFFFFFULL, + LTC2992_VADC_UV_LSB / 1000 * + LTC2992_IADC_NANOV_LSB, + st->r_sense_uohm[channel]); + uval =3D min(uval, pmax); + reg_val =3D min(mul_u64_u32_div(uval, st->r_sense_uohm[channel], + LTC2992_VADC_UV_LSB / 1000 * + LTC2992_IADC_NANOV_LSB), + 0xFFFFFFULL); =20 return ltc2992_write_reg(st, reg, 3, reg_val); } --=20 2.34.1 From nobody Tue Jun 16 06:34:55 2026 Received: from mx0a-002e3701.pphosted.com (mx0a-002e3701.pphosted.com [148.163.147.86]) (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 2257330C62D; Thu, 16 Apr 2026 22:00:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.147.86 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776376813; cv=fail; b=dpW1Qv64aF67qyJ3Eg5LADMCqxz6GAkha60WzU0fHxa4QxmfiIaOVBSgXLbYrHBor17FqZn3HwbyNrxmIESksBsMjIbRfiA7jYtu2L5O82D6BjoN+mdppjBBA5DYO+86MkOu/sLh6emfCabHwqwGRr2GfK7dKKN6g4812sDUPHY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776376813; c=relaxed/simple; bh=FOCpRWkNxZ4rn+C2iDchxa9qWRBoXjfApJAsS7tGSHY=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=CbWRycYTLHatlKAV5Sr79oh8F/rWkEASp7Ee3XJseVBPMEv6Dfpt+k1M0zy2Uy8FKDu+G4RXn4GBRaZmZy078omIJu5LmgXoXikvraeJF2jChn2cC/MOxen7mmfCdolP5EI/I+Dqnp46LcHcBv4WvKPWfyJH/BvPz+cSbJtkg1Y= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=hpe.com; spf=pass smtp.mailfrom=hpe.com; dkim=pass (2048-bit key) header.d=hpe.com header.i=@hpe.com header.b=lBd7Vk4p; arc=fail smtp.client-ip=148.163.147.86 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=hpe.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=hpe.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=hpe.com header.i=@hpe.com header.b="lBd7Vk4p" Received: from pps.filterd (m0148663.ppops.net [127.0.0.1]) by mx0a-002e3701.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63GHZCjp2323247; Thu, 16 Apr 2026 21:59:56 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pps0720; bh=33 LzMB4cGYPuTI7hXc+zGZJr5/yjJ7Q6bVomSonB4p4=; b=lBd7Vk4pxB0OcagB2g D38C8U/6HNY7khrBV5+2LbchnUOFxjMpNNQsTc5lp52vDaqHLDveluPsRg0UWFhb /OrpxqA0f59vQ0Egh0la95PBQT/bMOLMGzRr/d98O+Eb7DmK7OqjNfNxN3MhAUST zMqkBTcNpR/tuomTV+rL/eGW6Er/vdpXr68fl/YpyvnrGboFmyt8VG235+xlO/NR f9mWNKEhDawAaTBvHXHkrSo06kRC+I5Ne7OiVgJx1r3zfxNesG51sYX/j4HLnUnm 3mFEGKU9r2xlp5C+ia06pW5OTDIadj6tAMxX3By3XR3nKc9ZPi5SzI46FSaIc/Bl yS3Q== Received: from p1lg14879.it.hpe.com (p1lg14879.it.hpe.com [16.230.97.200]) by mx0a-002e3701.pphosted.com (PPS) with ESMTPS id 4djygq7207-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Thu, 16 Apr 2026 21:59:56 +0000 (GMT) Received: from p1wg14923.americas.hpqcorp.net (unknown [10.119.18.111]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by p1lg14879.it.hpe.com (Postfix) with ESMTPS id 09B5426E; Thu, 16 Apr 2026 21:59:56 +0000 (UTC) Received: from p1wg14927.americas.hpqcorp.net (10.119.18.117) by p1wg14923.americas.hpqcorp.net (10.119.18.111) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 16 Apr 2026 09:59:43 -1200 Received: from p1wg14926.americas.hpqcorp.net (10.119.18.115) by p1wg14927.americas.hpqcorp.net (10.119.18.117) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 16 Apr 2026 09:59:42 -1200 Received: from p1wg14920.americas.hpqcorp.net (16.230.19.123) by p1wg14926.americas.hpqcorp.net (10.119.18.115) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17 via Frontend Transport; Thu, 16 Apr 2026 09:59:42 -1200 Received: from BL2PR08CU001.outbound.protection.outlook.com (192.58.206.35) by edge.it.hpe.com (16.230.19.123) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Thu, 16 Apr 2026 09:59:42 -1200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xry+2m3mXuwhWeNrWyVtAI6e5F++cR00y9R3+riXTW3Hr3LcE9Y+KXF6w9XZ3MuhbUOkK4jrrZzcpaxJg2nDzxouy5uh3Hq2JCelvUT9bOa3RlHMDuMHUhcZmH7szs0ctXoS++Yf8CaKrMwTuz7djDHpXd/Ns1H/hFyvkC2kM2hxfVQiUNHf6hS2IU/3hKFw+ZkBUa954A21Sfi9vwuvvvpTPBaS/VK+JQnr5J0mzjYxoeG3P5Y1keMA0nH2x8AeSgQH74zk1f2Xu/rgvzjOfnwE9P3+N1iO01f6Z0iiubzx/AmREzdjT/Ff4ESumaKb9bJ5Vxd26L4Obf18qtNRsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=33LzMB4cGYPuTI7hXc+zGZJr5/yjJ7Q6bVomSonB4p4=; b=epdbELMQTTbb5E+R5kdjAjFxW2msvv5Q85WPUKYiAqSeigVHgPBOu+Fmg4KXw9TthRYk64HR+fvZG+P5BSLfWATe9WfeOg7qIN3bP6o4yYuWbG0OWueCYBh3OZmzlWhhVixDTtKxWfT6MqTuY0Uq4iuYNiODKP45/CfH62KXvEWFE2288rDv1eS6v97Y4KVicoO1rqoGs540ALn7ZPGsLbraB4eTMRrEI3bycLPVDjuv5sPkwVJQ+5eqwMy/xCMcKI9eixQ3nnikCSEFbHeJj6Z/2wNI2MOoWULoeO4uQCw01fUA16eaJzNbKL5t3Lwq4FUtI+c2tLvdnHi2PGsm4g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none Received: from LV8PR84MB3535.NAMPRD84.PROD.OUTLOOK.COM (2603:10b6:408:203::11) by PH7PR84MB3250.NAMPRD84.PROD.OUTLOOK.COM (2603:10b6:510:1ad::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.48; Thu, 16 Apr 2026 21:59:40 +0000 Received: from LV8PR84MB3535.NAMPRD84.PROD.OUTLOOK.COM ([fe80::fce6:5af1:e04e:caf6]) by LV8PR84MB3535.NAMPRD84.PROD.OUTLOOK.COM ([fe80::fce6:5af1:e04e:caf6%4]) with mapi id 15.20.9818.023; Thu, 16 Apr 2026 21:59:40 +0000 From: "Pradhan, Sanman" To: "linux-hwmon@vger.kernel.org" CC: "linux@roeck-us.net" , "alexandru.tachici@analog.com" , "linux-kernel@vger.kernel.org" , Sanman Pradhan , "stable@vger.kernel.org" Subject: [PATCH 2/2] hwmon: (ltc2992) Fix u32 overflow in power read path Thread-Topic: [PATCH 2/2] hwmon: (ltc2992) Fix u32 overflow in power read path Thread-Index: AQHczexTQGNop8XHY0aHaVXbw7AXtA== Date: Thu, 16 Apr 2026 21:59:40 +0000 Message-ID: <20260416215904.101969-3-sanman.pradhan@hpe.com> References: <20260416215904.101969-1-sanman.pradhan@hpe.com> In-Reply-To: <20260416215904.101969-1-sanman.pradhan@hpe.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: LV8PR84MB3535:EE_|PH7PR84MB3250:EE_ x-ms-office365-filtering-correlation-id: 9e35a260-660d-4de4-5779-08de9c0375a1 x-ld-processed: 105b2061-b669-4b31-92ac-24d304d195dc,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|376014|18002099003|38070700021|56012099003|22082099003; x-microsoft-antispam-message-info: yx33yye5OGhh6UrnyERzci4FOCC8frA0azhOZ5EN68YpR3ugrb3+xOkFJW8ECY5AOQDqro3VfhUJOosgZciusOWNl7YA7NE1B/FkMJR9iavhiUeBO3loaHyS6BAFcAwylFDBznwn2SFh+w4LBcVrmy2ZtQlWbvoYDFhbkHOjUxbyavI4O+2M+8ttJ5fvkxWkkgFlB9R4HiC/DVAxNW4OMb63K+2dh90+qcbsj/y806UqsUcF4kV269ikJediI1f9XgsBEnpiGooMUeL/SJ3KkBj6TXGDi0sSIKBAYSZoty+aztgs7MN61EJI8wDL1i5qdyUNyz/3CZY5avZREyRHrZlSj0aV7kecuyuIK9kjuu1u29QAh1I7iqR2Q3SgJThFkTB5rhtNxbHx6DSy1885fqHDEJDrAANzU5gh9BhJUh8pIvpzb/FCdcx1PTJvouP+zSY2dm6kaTLu5ACkrU6A4uAib6XTi80xjSpV4e88kPME1qxxFgg16dZ5k/7d0Wj/SbnbIpd0g1Zz4HeHdVMedxtqVhOHxVa0Kt5mwp1J4CwHVbjxalGRltDziExaxm6xZ45h/FQfSCwhzE9oh8kOzg2iF9wV3SKqyU0rH3gtdtYrOw7NcTeqh1XhoHbtbe/mlREKKoBmzXh/KIs/DMhl4EYNbOhckfWRluInhPUmCQpzrFP5bm0MIZ1FewUWRuFpZdlZkbikmQizlmgqZXysf7WAcI8rD9Vnt4WaMgc4ge7QXbhOq/HUmbT+L1w3uDVCP65RsDvTR4dYCNLJHBrrHoZNOzht2oAlB2WbVtNpfXU= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV8PR84MB3535.NAMPRD84.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(18002099003)(38070700021)(56012099003)(22082099003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?LdSSKrELhRw7KHb3mF19fS3Z3GwH2KO+RwHkmhu3FlBDxDGiIFgOv0txA8?= =?iso-8859-1?Q?/YreFIAfTgYmtdZJqWyck/BRn9TsNJpHYAQ/jaiPkPCHDQguJFSQeM+jLL?= =?iso-8859-1?Q?qGyhW5q0zVFfaVApSCwpajIA4fjy7hKJ7hY0SZ+ceMLhZJlCoDQk7Qg8MD?= =?iso-8859-1?Q?027qqZdCs48JWJoEh3MQp9McGC3sh4bRCG5dCTvYavOXCRhTr5Q5npj5EZ?= =?iso-8859-1?Q?JO1n+oIG1NGe3ER/RpGsdDd+LbLIzj9QaYbqeEkV30JSlF5C6t00bORonB?= =?iso-8859-1?Q?SSvZ/XaUXgoAcogB3aSjUde37cdfybhYuTlwdWi5vqyL31TWEDpPZNZXO2?= =?iso-8859-1?Q?dl2s1Z8+8UlVRGQo3yge7a9DlCjb/yRVVYTN6Pc5RnaaBSxgu+qE5oIbPj?= =?iso-8859-1?Q?RM20v7HHbFSfOs6GH8GWIuDxR75ETC41o+fP6/sr52RQTGUWI/GeboCe4v?= =?iso-8859-1?Q?H+FZSEvJD9ecv0YEDlPvYgBtAG59llVLP1UNt9nvUIhkyA+q6jyxTc1z0k?= =?iso-8859-1?Q?Q5Qdr2Wzv8vBHrFF1rDILS2Q9Xb38oz9g0qzkJORR+T5nX3wfw3WjfMm3S?= =?iso-8859-1?Q?S5MYZ85Abm0I0XIMbI43UwGdo/isvD/G3CkBWYWT6Rk8oijfxcq87mZKcs?= =?iso-8859-1?Q?w1bx4qRwDtXu5CCRDnrraMycuzT15xFnFjzea4C7YcamChtOFLHtqgcBUb?= =?iso-8859-1?Q?ww0KKwxNaCWUU4eCWr859qwmQWysPbCmx9BrhY6Ain7s15YiPQJoE3nwcI?= =?iso-8859-1?Q?HEISFdn8s5uTN3vpMOfhtAweNl/8WZCtzQX1OiDtsuUWREcbsf0MszkpBj?= =?iso-8859-1?Q?8jwt8A7iuNge4fTRpIbrsMek3KCqso3rAGme0OX16AKS0FrhY70AVbFpmK?= =?iso-8859-1?Q?keRINEr4FgtMmC7Cjlt3xhgDeRdbcLNQF/lC0CYrNuUQsuScU8pH78Gp7I?= =?iso-8859-1?Q?6Oeo+l0ZPLYU2P2v35QruILAxTWoaVRaLdqHmybjICZ5Xi92qJRTl2wGfT?= =?iso-8859-1?Q?LL7PELO+xCwys9+yb7kbEMMWS1RHZI+Hk60Rl7s01miwxueBym4N2TVp9E?= =?iso-8859-1?Q?CUcSirSQUz1X8DHuVsy94bDdfoQGTmC+BirlPgOsDI6cVlHGY1MSUFntYt?= =?iso-8859-1?Q?cdhGiuiJCH5H09w0sVrNcxoSSlQf922TZfN7D7zlzjQlxwW7EUuXJdeTzj?= =?iso-8859-1?Q?Gi2EmP+r9mmCozNBC9R8yYjz1Y8k1Q6Fe6CbwSUuo3apeUFn7QJDMsGGlQ?= =?iso-8859-1?Q?Ul8jHxV5wYPHX8wHWTxYcBICJXQwcrM6OW2J6QZMvqfExc5QWPlFu3oSbh?= =?iso-8859-1?Q?kT4wlA10Tuu4LB/RDAJ5WCHvWtoiActh7y5oZi+MZViQOEKba5dowemi3u?= =?iso-8859-1?Q?MYfOhUSHOSCDH/AarMHxUFL57UinUmft9Ael1uvBK8uzVChRIb8D9AMqPG?= =?iso-8859-1?Q?h6NoBV1TggD2HtMmUuw0iWH6K2DcTQF0ZJXQoZ5zasJQp3bKs509/gqHEg?= =?iso-8859-1?Q?pIqqPSvYplLSDzW6zMDt3kRCwXAqlDoR+tL1vBlGU50E02yE/rC7/Tkrqk?= =?iso-8859-1?Q?gAAAlzdKwJT7FCc5/Eolmeu3PVZD3L49J8EgbnovwF8v15EBfjJ6tf/eeW?= =?iso-8859-1?Q?RKnsvfMWu9iPf3wIULQOihMdkYFDiyws21KRBbMnxH+XVDJjyaSF9yKXM0?= =?iso-8859-1?Q?s/dyPjQvatcdlQEMitmoFUttmaGekPLla05K21Cl5Owunbd6UyZ5N3e75M?= =?iso-8859-1?Q?oQIVau5OTbDQyo+LD8c1o9oB/P/DlshkPJkmd/YkXI40LP3k6WxIJ4fiIC?= =?iso-8859-1?Q?agazzc5Qcw=3D=3D?= Content-Transfer-Encoding: quoted-printable Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: fRfQ4N2SBlDRFvFM0YlBwoTy6TuuesSsgiTBrdOaG8Sy0MFSAl0AUzOcWYfpHcdOHQYNcmq5+SiOahNY0+m37NqXIfkvOfI5BRGuZg5f4Gh539d2SuAbIoxwvHhQdxq+i+22+3mu3SPrFD0UrmISMJymV2nR6F2KUzuPiMMqVCa83y5XMZ/+zVHFdV+CWysd4oz3Iwco7FQwLdlQXZJzrDiPbzJVIXxjqqsib/mtDwrrgM5ai7EVC/tFmw7ZRBh8BUWbMsZ0sOBCA8ZLLezgRj4z8h0a5trAPmI3gvuYfx2KKCQR9J/RGBLq91fxpcNhj/aDrP2Z3lAzgdETiRVFXQ== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: LV8PR84MB3535.NAMPRD84.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 9e35a260-660d-4de4-5779-08de9c0375a1 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Apr 2026 21:59:40.5006 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: oHf/vGa8r8SzHPmJ43gIt3GkHzZCMG96YmTZV9Xt25b8aDpM9lcXZsqLXf/fRYrYK21c0E/qjsDFUw2KXqdRgw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR84MB3250 X-OriginatorOrg: hpe.com X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDE2MDIwOCBTYWx0ZWRfXy/k7m2X4fKcC EyS/SC6nBta8fd3yCepOx/9eRg7TAg/PSiWMh7q9P2WXWfmQlxzcXX7aYjgTeXwIplpvhkjQ4DG A41kM82Dd0xoJejv4DA1Ll99//xEO4+Uxx6ij0RhjDP+2o+1LxbdTd6ghzQpKfnejO+2e2YV87h kG7R49u94Yc4YaplsF4peiSsbMn4NJ4fX0+A9GXpqV6zOQnJ0uT7uaJqjBNvb7kEDQoZiQCWlaS n0NpEPYU813UZoy3joYOAvXFG+PQX5nEII/6RCQrJ4cNoMsT+f7UQsTRQ2aaZ0OR3e44tgpxCDy EyTznkKctJ2vF1BVy2Io6X0aIdM+YzEfYXFIUvWal8o5W1YXkzX5Lvf+U5MqrQvkAC4Tv0e+sQy nqrJBIHwhvG7peRFupaGnAksXb/IkvxDaoLpaXGQdZyoY19bxIBXBRshcV/K5mCm5/sAy2+GCH2 YpaS3Y0OoBIBM9EzPWw== X-Proofpoint-GUID: 6LnBHFvch82XgOIrVnNtdtDNhcRWVCLI X-Authority-Analysis: v=2.4 cv=KJdqylFo c=1 sm=1 tr=0 ts=69e15bdc cx=c_pps a=5jkVtQsCUlC8zk5UhkBgHg==:117 a=5jkVtQsCUlC8zk5UhkBgHg==:17 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=8nJEP1OIZ-IA:10 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=gQcMVamqm3wCPoSYhaRC:22 a=6_mrDcixewTG61oOsKN3:22 a=OUXY8nFuAAAA:8 a=VwQbUJbxAAAA:8 a=mJ7ifGdTIGl7JtqJdpwA:9 a=wPNLvfGTeEIA:10 a=cAcMbU7R10T-QSRYIcO_:22 X-Proofpoint-ORIG-GUID: 6LnBHFvch82XgOIrVnNtdtDNhcRWVCLI X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-16_03,2026-04-16_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 clxscore=1011 priorityscore=1501 spamscore=0 adultscore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604160208 Content-Type: text/plain; charset="utf-8" From: Sanman Pradhan ltc2992_get_power() computes the divisor for mul_u64_u32_div() as r_sense_uohm * 1000. This multiplication overflows u32 when r_sense_uohm exceeds about 4.29 ohms (4294967 micro-ohms), producing a truncated divisor and an incorrect power reading. Cancel the factor of 1000 from both the numerator (VADC_UV_LSB * IADC_NANOV_LSB =3D 312500000) and the divisor (r_sense_uohm * 1000), giving (VADC_UV_LSB / 1000) * IADC_NANOV_LSB =3D 312500 as the numerator and plain r_sense_uohm as the divisor. The cancellation is exact because LTC2992_VADC_UV_LSB (25000) is divisible by 1000. This is the read-path counterpart of the write-path fix applied in the preceding patch. Fixes: b0bd407e94b03 ("hwmon: (ltc2992) Add support") Cc: stable@vger.kernel.org Signed-off-by: Sanman Pradhan --- drivers/hwmon/ltc2992.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/hwmon/ltc2992.c b/drivers/hwmon/ltc2992.c index 1069736196763..2617c4538af91 100644 --- a/drivers/hwmon/ltc2992.c +++ b/drivers/hwmon/ltc2992.c @@ -637,8 +637,10 @@ static int ltc2992_get_power(struct ltc2992_state *st,= u32 reg, u32 channel, lon if (reg_val < 0) return reg_val; =20 - *val =3D mul_u64_u32_div(reg_val, LTC2992_VADC_UV_LSB * LTC2992_IADC_NANO= V_LSB, - st->r_sense_uohm[channel] * 1000); + *val =3D mul_u64_u32_div(reg_val, + LTC2992_VADC_UV_LSB / 1000 * + LTC2992_IADC_NANOV_LSB, + st->r_sense_uohm[channel]); =20 return 0; } --=20 2.34.1