From nobody Tue Apr 7 17:47:44 2026 Received: from mail-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.52]) (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 C214E320CBE for ; Thu, 26 Feb 2026 13:11:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772111505; cv=none; b=VlEYUotoZQq3JUBE6AbtCxZxu0MwlVj8QHrXUxKnQ1zUei0KuGDlqezTugGmMILWeUmQc42lArqQ+G1+Pa7sXydl74c4Q4Id/bIm8aClNHIX/mOZxEpEeeKY9sO0NchTx9vfqSIBIgcAt3vWWYal9bJAOs/4pYpGuE9w2xzaDdI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772111505; c=relaxed/simple; bh=eh1OY1ieLLdHnT7gZwSOwUnROhsTRrF71czKCjiixts=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MwLlkWSnO5Bm2tza1JWVp8UPENuSnNmUGyxpp2SCSsduMgUWHKDXwiXgpB/INedOZ1SWcjciQWFk89qzsxRDf5yRnw1i9SWqbCyNFKh2AN31ldWCRJeVTexfnB0VIHRzEpZa4WGFs9v4JblI9y/kwRCqy7WzBfUVvt7IFwn6Wmk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=QKN/acmA; arc=none smtp.client-ip=209.85.218.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="QKN/acmA" Received: by mail-ej1-f52.google.com with SMTP id a640c23a62f3a-b90bc00578cso125371166b.0 for ; Thu, 26 Feb 2026 05:11:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1772111501; x=1772716301; 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=c6Q/YbctU2cng/xKxSbyuYnqAnOaNtvn3Ivyo/NwaTY=; b=QKN/acmARLYDJhLlKJil0cPrQHhlvzBrhslXhmBvlYhJqJAO6Bg4W5/h6fTGF6UOJl 4qZaP3vjEvR4adtEMzoBQP9wiIMDEloFcAbgHRSlLIi+f1r9pxX8NAA3lUyqQa4eQewL VE0M6XPB4Nplz54ojR7cAA5cbQim+GL0u9D21F0m3+UyT+sn3MlWT1rC+jSELLpI42B4 i1cewpQvjcxqWCCA1r0KfXyWho3ht5dyO7upeZ6dWixSyAaSoAmGG0A17qasYHsSDrx2 5xQJ0ggPlrdtQ9cdZwzLaPYiJhMFro6c0EV5WCLNt+dvKGBkUd6YSHuBiHDrWQIE80h1 wCrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772111501; x=1772716301; 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=c6Q/YbctU2cng/xKxSbyuYnqAnOaNtvn3Ivyo/NwaTY=; b=loNKtGy+0PiO8npMiRN/0NFFTlRNhbQqSze7j/zOBETUP9ZK3xkg9+R4kMi1IYkHLM /WVTPCWZpm5HeqknoCc3Q7nAaKaeOwLE86lMxabpYENEFEqCw2SHDe27LVadXofEfs7n kJgSPmfjA8/8QlE/ACBE6GC3aqfEGgnGnJKDqwIVVzjCCONlynDIVJ70zxeU7WxUtgal aBTB649Qw3ppd74JDXQoREbfnXwJLdr8kMbK/uJ7qpXFxMUXj4xNmlnOo2pyHswNSEm1 P6PwM5s07udsOigC0rKq460ShEYmcdGNC7yl1bpjXZyZts4eriiQc742iW8ZUpFeJOnV N44Q== X-Forwarded-Encrypted: i=1; AJvYcCUNNTxkQspRiA/An09ilm2H3CWTSf1NbE244DL45LpdeP/KRsK6QLTfINDAXJEnTlopoLxAKRcqShOXfq8=@vger.kernel.org X-Gm-Message-State: AOJu0YyPOoLRj/0VCS9b8nQCd2pmv3suQ1JiNY+heKXUD98U6sSc7Q1+ mHDVRD++RKSRr410lA5yH3O+bW7wsFUW+lh6+uet1hz9w1gk+sCUYZyMyI88Ucpwi+A= X-Gm-Gg: ATEYQzzKuNwspFVU8JQxhzAKH2P+kaPnfeKB+Nd8i1xPlkFugi0yh9Ibppad1Vvo8Ye 5fBlHPdhn5N0G8sSmOoSeW8Y2XoC5z9jqXf2kuSpKZTm14qdoJPp3GuTwaDPy5Mk8wWWrzhrzWO ywvP8UzjrlfpRmgiHGrpAKV5bdqYTsRgKpWAG3/7TK2/m2dMa32/HGh2IsRIEAHVQBGtgwmYDsD zalpTk3y7x1UaaXfrRDr6KrT9xQqGWQeSHmcvwxavRbpYFc90KlIe1flVl7RcaVz0CIeUFfHIVI /uAbVVk6HP+cGe8EBtO+qmgrtlFL59mqIVbWU2jIWZz6SdfkGcXSk1XOtIWipF1PaWwSmBReySw PhjD4cR5C7ZRbsChcR08+2v3IqneUpcgl646F5PScMajbN5mpTTR3CzDauYKZIL6X7xia4+T04H c5BN+TCuQAZ3uDNHzwLdIMD3mv8EJcLDopfYay4dMm9WT1hueAQO4d31AdYcf0rwxPfE5BVLsgZ pRjNhcUZ/OKbA+biE9FCQUeoZjg X-Received: by 2002:a17:907:78c:b0:b90:ba11:1694 with SMTP id a640c23a62f3a-b935b936384mr131201466b.50.1772111500895; Thu, 26 Feb 2026 05:11:40 -0800 (PST) Received: from puffmais2.c.googlers.com (244.175.141.34.bc.googleusercontent.com. [34.141.175.244]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b935ac73d2asm55125866b.26.2026.02.26.05.11.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 05:11:40 -0800 (PST) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Thu, 26 Feb 2026 13:11:40 +0000 Subject: [PATCH 06/11] power: supply: max17042: avoid overflow when determining health 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: <20260226-max77759-fg-v1-6-ff0a08a70a9f@linaro.org> References: <20260226-max77759-fg-v1-0-ff0a08a70a9f@linaro.org> In-Reply-To: <20260226-max77759-fg-v1-0-ff0a08a70a9f@linaro.org> To: Hans de Goede , Krzysztof Kozlowski , Marek Szyprowski , Sebastian Krzyszkowiak , Purism Kernel Team , Sebastian Reichel , Rob Herring , Conor Dooley Cc: Peter Griffin , Tudor Ambarus , Juan Yescas , Amit Sunil Dhamne , kernel-team@android.com, linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.14.3 If vmax has the default value of INT_MAX (e.g. because not specified in DT), battery health is reported as over-voltage. This is because adding any value to vmax (the vmax tolerance in this case) causes it to wrap around, making it negative and smaller than the measured battery voltage. Avoid that by using size_add(). Signed-off-by: Andr=C3=A9 Draszik --- drivers/power/supply/max17042_battery.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/power/supply/max17042_battery.c b/drivers/power/supply= /max17042_battery.c index b9277f81a25d..8808c0d2ad10 100644 --- a/drivers/power/supply/max17042_battery.c +++ b/drivers/power/supply/max17042_battery.c @@ -201,7 +201,11 @@ static int max17042_get_battery_health(struct max17042= _chip *chip, int *health) goto out; } =20 - if (vbatt > chip->pdata->vmax + MAX17042_VMAX_TOLERANCE) { + /* avoid + * /sys/class/power_supply/max170xx_battery/health:Over voltage + * due to overflow + */ + if (vbatt > size_add(chip->pdata->vmax, MAX17042_VMAX_TOLERANCE)) { *health =3D POWER_SUPPLY_HEALTH_OVERVOLTAGE; goto out; } --=20 2.53.0.414.gf7e9f6c205-goog