From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-oo1-f47.google.com (mail-oo1-f47.google.com [209.85.161.47]) (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 8468030C37E for ; Tue, 14 Apr 2026 15:32:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.47 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776180736; cv=none; b=RpFh7t8gC7i/efXkQ11EWHKMDnQpsKOOZsh3rDbYjqRDCTf8P5iX6GM2+AdezYxirIMeKdU+DQ3vHqVcvhYOxHRRumClcOxD/LKqTu9aYtDCDdfJcUfl+GXKT8goeLyuDqnjLRMWBLQzZjA0YoXrbGRgclUfoDIY66wH0MS5Rf4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776180736; c=relaxed/simple; bh=OQ+eXQvqCuDPxHODJT+Q6fjlW9w8/UDEMBGuCq6gucE=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=i65csh6QrQfKEzaBG5dVCS89nPJc9W44W7I6ghJWCvtLWV0VAjYKm0aUTvYLmxrKTtw67TehONUWqTu2p2OHvEkpZL7IpxZ8AKjTc9AppnH6+bzUm1cvwxW//CRDhOghtZ7js4+gYd6IhkqIFJW3qwxcaAEyd8g8ULGP4X0wM0w= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20251104.gappssmtp.com header.i=@baylibre-com.20251104.gappssmtp.com header.b=JsN8omjW; arc=none smtp.client-ip=209.85.161.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20251104.gappssmtp.com header.i=@baylibre-com.20251104.gappssmtp.com header.b="JsN8omjW" Received: by mail-oo1-f47.google.com with SMTP id 006d021491bc7-679f6ee3fb0so2004296eaf.2 for ; Tue, 14 Apr 2026 08:32:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20251104.gappssmtp.com; s=20251104; t=1776180733; x=1776785533; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=P8h+U/XNJDl6Z0eQIGD2q0/7suGmBSMAEqPDhKbc0pQ=; b=JsN8omjWFYIoScSUgYSIXbKvYW/2mgsYk/4pOT1TpK4wz/1+LviHF8B/2fdDPu6B+O d2y+19Mv0TYi2k1m4GqHNgS8bc6QzVfnzAaC/JFE8jCmOeWgIGoE1uiqngYx6kl2FgBx A9w/WyCmyVkIPmSHx30pNpviDhaNE/7ogIbUPi+5c2u+wrA9pyeSQKfqXEkc/rY1+zB0 mbtgCkW8rEy2J+t2KGekxptU8G6/UmKX09Gj0fyoDyrnqS4PXG7u5fW8iLmjSkqm8eZU lcQzhHnRKeEr24g5NQh9uSe0vKdCLZI+cQIjO4Ymx0R+X9trHE71ul3qbWPO/n3ZBaz6 +1Yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776180733; x=1776785533; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=P8h+U/XNJDl6Z0eQIGD2q0/7suGmBSMAEqPDhKbc0pQ=; b=KYdSGckW4wfdDeivOw/h2pdDgMds5E9CgNO/8c/W0xAMtQRHxdO7bu1QOGx7zzK4Ds CDNHp69ePtRgqTqKfoNwGlz5K9UZzV3/OK94sGcBRsXLqoqOnjej81X4EP1nlriG3LPf 5eqMzZyhJzoyqvQR8d073YB5kt+CPTYOsDOcM2q6G7UughHMgdN7vvDVPq+fVkgQXjhy nl6szkksOMcvo1/4ETgaPsyWKw10TfvfdpdN9e5uc1RO1iWGc4voZIwTXCk0ay0RWxGe CKB+BWzaWhUmsXiA8qCBrVRVYdlpj/RSwXZLkYacR5hfreFlmrZGWLRu3fBB1dYcgCyH z69g== X-Forwarded-Encrypted: i=1; AFNElJ8zF+YwDrYkPBCqhul8NAvEgEEaxavB1YZi0oxfA+BKx38K+ul08CGBvsSE3yuSVPVOyx4KuwLcU4+oGxY=@vger.kernel.org X-Gm-Message-State: AOJu0Yx+6wxGTShtlMmPFmkNUeZ3s/12axO+OXp1oBKO+3p+TnUlGrdR 7FgjFZNo9EhSwEq61BUBIR9jJLCBsFub6iyK9fZRNTut9m5a8vIFCJKO7440y0gSFSg= X-Gm-Gg: AeBDietokWzKrxjNEW5ufU2B8ZyYFG356khKUZCjRx+Lj3MDYqfZdVCNx7Ve5yYcPvN EVPV0x/I3a0SNqG61m6a3yDmUPbX0VkePrnZBVYo7YSKu2yYY7pIUT7+Wseq4jbJtm9dutCGpZs tzTNn5T+EM93yu5CC8mijzBmqhmGzBzAUV7G67ajwxsUlo0K2+FEM7w7TU/zjbEQW6OWOM4ENaq 0/LlEc7t4r/HH4cn7smjJYqWSz7Y2LhDZO2ER0+6tE9Il9djznAbhDXLh2ndEu5uMA4uNi9xHLW jgcuJPbr9iWOQfre0mGyTxJKvpne27ZpxVSbznVPXp69h71PecKIcAnByMM5LoRplbydUBo+zba uLppJLLBlmC0/tX6X1WBb2IoxhB9nwvg/u9fKcICSsrmF6bSFdz+oQCxtd5rXNsN2J/6NnNPQEc jm3g4F6V4h+XzgFN+UUsJU0hRosi7pvlslJ4qyimAZGKIcAsfHL1K3GNGml1EXwFhyzErj5ZO18 w== X-Received: by 2002:a05:6820:290f:b0:692:a19b:af6b with SMTP id 006d021491bc7-692a1aafa3cmr300102eaf.13.1776180733266; Tue, 14 Apr 2026 08:32:13 -0700 (PDT) Received: from ?IPV6:2600:8803:e7e4:500:5bfd:a817:5527:c417? ([2600:8803:e7e4:500:5bfd:a817:5527:c417]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-68bc7dfd5f1sm7219108eaf.1.2026.04.14.08.32.12 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 14 Apr 2026 08:32:12 -0700 (PDT) Message-ID: Date: Tue, 14 Apr 2026 10:32:11 -0500 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] iio: dac: Fix passing uninitialized vref1_uV for no Vref1 case To: Ariana Lazar , Jonathan Cameron , =?UTF-8?Q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: Jonathan Cameron , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Dan Carpenter References: <20260414-mcp47feb02-fix4-v1-1-9d71badfd25e@microchip.com> Content-Language: en-US From: David Lechner In-Reply-To: <20260414-mcp47feb02-fix4-v1-1-9d71badfd25e@microchip.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 4/14/26 7:33 AM, Ariana Lazar wrote: > Initialize vref1_uV variable to 0 before calling > mcp47feb02_init_ch_scales() in mcp47feb02_probe() to avoid passing an > uninitialized value when have_ext_vref1 is false. > > Fixes: dd154646d292 ("iio: dac: mcp47feb02: Fix Vref validation [1-999] case") > Reported-by: Dan Carpenter > Closes: https://lore.kernel.org/all/adiPnla0M5EzvgD-@stanley.mountain/ > Signed-off-by: Ariana Lazar > --- > drivers/iio/dac/mcp47feb02.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/iio/dac/mcp47feb02.c b/drivers/iio/dac/mcp47feb02.c > index faccb804a5ed548088aaf83266b16ed45a92916c..efd4847913e46a4fa1b671aa9c5bd3e1430406b7 100644 > --- a/drivers/iio/dac/mcp47feb02.c > +++ b/drivers/iio/dac/mcp47feb02.c > @@ -1095,9 +1095,10 @@ static int mcp47feb02_probe(struct i2c_client *client) > { > const struct mcp47feb02_features *chip_features; > struct device *dev = &client->dev; > + int vdd_uV, vref_uV, vref1_uV; > struct mcp47feb02_data *data; > struct iio_dev *indio_dev; > - int vref1_uV, vref_uV, vdd_uV, ret; > + int ret; > > indio_dev = devm_iio_device_alloc(dev, sizeof(*data)); > if (!indio_dev) > @@ -1146,13 +1147,13 @@ static int mcp47feb02_probe(struct i2c_client *client) > dev_dbg(dev, "Vref is unavailable.\n"); > } > > + vref1_uV = 0; > if (chip_features->have_ext_vref1) { > ret = devm_regulator_get_enable_read_voltage(dev, "vref1"); I don't think ignoring all errors here is a good idea. For example, what if it returned -EPROBE_DEFER? Then we could end up with the wrong reference voltage instead of trying again later. So probably something like this would be better (also fixes uninitialized variable): if (chip_features->have_ext_vref1 && device_property_present(dev, "vref1")) { ret = devm_regulator_get_enable_read_voltage(dev, "vref1"); if (ret < 0) return ret; vref1_uV = ret; data->use_vref1 = true; } else { vref1_uV = 0; dev_dbg(dev, "using internal band gap as voltage reference 1.\n"); } > if (ret > 0) { > vref1_uV = ret; > data->use_vref1 = true; > } else { > - vref1_uV = 0; > dev_dbg(dev, "using internal band gap as voltage reference 1.\n"); > dev_dbg(dev, "Vref1 is unavailable.\n"); > } > > --- > base-commit: 51e7665ab81f02adc80a1219c260ee678e9c6eb8 > change-id: 20260414-mcp47feb02-fix4-614de9334f22 > > Best regards,