Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp421114pxj; Fri, 7 May 2021 11:32:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwfmOb+ZxIvhTErYQTW6kR9mVsEesHVbpTv0A7yq6oNZqElhApCnCLUbuIac5r/imkRijrJ X-Received: by 2002:a17:90a:a892:: with SMTP id h18mr11779014pjq.195.1620412324552; Fri, 07 May 2021 11:32:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620412324; cv=none; d=google.com; s=arc-20160816; b=r4Tr74OqNnLeW9vmQg+1n473FEBIeq9R8kz7lu2IayVwdPD3hv554yH46LYWnLDZhS H0cNPu/2jjyqYnWQ1WGa2cQ5gMngk+XyJGiwOqIC71en1syjf7E26rnzBh3AEGsC4ADo kXGnSEHU0BvF3Gd95HSK8eOUpWHE49uDs9ps9ktQ2XyC5UkJrRFv4Fd/bSMf0/ommCGf ZroqE+1xEHAuNUN/igVRK5hDRiCMcoxuIVwj3egLOvwosg/3diQnQ1AR/qwkk/15otL3 OqWspVw8CKIKF0k1RL8bHRZ233aQ5+uXebBPJ/idtu/N7gdBzZS1fugbPUB6lJY6VAKY Q2Kg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=EV6rBz/aiTUdrxM95Igb2END9DpPA4OLH9X2DLqm+dw=; b=YqFtGhuLZfr4jGF4yxmX1bUF86R5fmJf4aeol3Juec9FPVouvyKe2XKOODwvJzrG3c I7iU1i9aQ5O8fxFgHyY7WChjhRWKaAau0c5Cy5akjqKiNd/vK1+arIVW9ageW5R26w7x iLOCHNnHBdjq2VaPr0tEvPjhUbngrdMMUsM41rblaDT6StGbDdrmXtv9Q3W4KIi0veKp DLsfSYdbCWYPaE+2WCZrSdf/D++oGElCHU13/aDQnjRWBhMLXi92rVQaa9Yv7ZvqIR1g VpoUuuBT3jTsxEgfEAsJzJilYQsT1fugz9bu3UVWTX5kT3Y/8jk84aK+oYM+1pAOuPox VmPg== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id 3si7548611pfp.10.2021.05.07.11.31.51; Fri, 07 May 2021 11:32:04 -0700 (PDT) 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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229649AbhEGSbs (ORCPT + 99 others); Fri, 7 May 2021 14:31:48 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:54182 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229470AbhEGSbr (ORCPT ); Fri, 7 May 2021 14:31:47 -0400 Received: from 1.general.cking.uk.vpn ([10.172.193.212] helo=localhost) by youngberry.canonical.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from ) id 1lf5FJ-0002sA-Po; Fri, 07 May 2021 18:30:41 +0000 From: Colin King To: Jonathan Cameron , Lars-Peter Clausen , Nathan Chancellor , Nick Desaulniers , Jon Brenner , linux-iio@vger.kernel.org, clang-built-linux@googlegroups.com Cc: kernel-janitors@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] iio: tsl2583: Fix division by a zero lux_val Date: Fri, 7 May 2021 19:30:41 +0100 Message-Id: <20210507183041.115864-1-colin.king@canonical.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Colin Ian King The lux_val returned from tsl2583_get_lux can potentially be zero, so check for this to avoid a division by zero and an overflowed gain_trim_val. Fixes clang scan-build warning: drivers/iio/light/tsl2583.c:345:40: warning: Either the condition 'lux_val<0' is redundant or there is division by zero at line 345. [zerodivcond] Fixes: ac4f6eee8fe8 ("staging: iio: TAOS tsl258x: Device driver") Signed-off-by: Colin Ian King --- drivers/iio/light/tsl2583.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/iio/light/tsl2583.c b/drivers/iio/light/tsl2583.c index 0f787bfc88fc..c9d8f07a6fcd 100644 --- a/drivers/iio/light/tsl2583.c +++ b/drivers/iio/light/tsl2583.c @@ -341,6 +341,14 @@ static int tsl2583_als_calibrate(struct iio_dev *indio_dev) return lux_val; } + /* Avoid division by zero of lux_value later on */ + if (lux_val == 0) { + dev_err(&chip->client->dev, + "%s: lux_val of 0 will produce out of range trim_value\n", + __func__); + return -ENODATA; + } + gain_trim_val = (unsigned int)(((chip->als_settings.als_cal_target) * chip->als_settings.als_gain_trim) / lux_val); if ((gain_trim_val < 250) || (gain_trim_val > 4000)) { -- 2.30.2