From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.53]) (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 F0DF837E317 for ; Sat, 22 Aug 2026 08:16:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787386583; cv=none; b=TMeEhJGQYCVVbRMVBEIvF2U6lryYXoR/GKheAThqmL/qchgbYewTpDrg/bVyZAUOry9f87DM2laepXWhUj/95aVp7w1fcvrHGh0dO2FuACte9tl9znhce/R6L+pq9zV32xBN01adPQd5z0/eJIWzaK+NAdoOssL0e2LwYtWvADU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787386583; c=relaxed/simple; bh=TV3WZupbrYiiF+JqzUgyXDZQaN5aQcSsej1mVUbAssA=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=CtiYzJKR7xe0D+lgI5dqfCcHOyDVc638ZuiDXQK8TB+Jb521Ov24Jo4nhSiyvqdkOqlmtDraDh8tBLf/TmVcUc6Sunin8cVxdSYD1zR9kbNnqn3FUBlP9k3fmuHmcJeIzdvSxTdFC3hmw35lcTCkDCp7mZUnUY1nNQDvQ9876R0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=VESXHYFV; arc=none smtp.client-ip=209.85.208.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="VESXHYFV" Received: by mail-ed1-f53.google.com with SMTP id 4fb4d7f45d1cf-6a0794669a6so3587999a12.2 for ; Sat, 22 Aug 2026 01:16:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787386580; x=1787991380; darn=vger.kernel.org; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject :date:message-id:reply-to:content-type; bh=J/gqM6k2vXmc46oIqgEoMF+rXBbgRi1NIKf+Vh5Uza4=; b=VESXHYFV7yp78ZsuXqL4RYw3avRflJZFEDq8VLICYQx9IwXHBL+h2GKQ5nq6bz7led w6W6wvE4eki2yhbdcP/TKWSuF5j6dKF0GfNo0ZwwIjvBdwvcrgX7tiEELqLQEn/MYBi9 qzaR0gM6QOO1NVlIM6hzb6UJPiT2lnp0HxblIF+ze+R4BnZz1vMVHxXcCIpxFjN/SN1c lwTHOO0Qyw2J0KcmoNNZYYT7/diqgg2rjGjsDQ/bZzbzfx8MgEhYm/g0ZZllTGmmf0JB hNDovTrEXN0tGYQx8LUCknKNeX56eZkVHtgCPyS34aEoMSYDQpDYj1mIRkGSxKuxjDtB IGYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787386580; x=1787991380; h=content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=J/gqM6k2vXmc46oIqgEoMF+rXBbgRi1NIKf+Vh5Uza4=; b=JF1CezcmtUoYLtZzXKa+foCoyT+EoWHs1oeI7irpNYRXANGz9F8NCOZrQz9xGgWhbB AFmGPh5Rmauo+w4MRnFWA2ptJpmp+2i7goPcdd7p+7b0Vm007B/u5PDiUIYgezwdOwHC gofaP/vliIoT/VHSi9mzjj1Am66cUjG6r8LiR/dgpMAbAFVRwVhm9Q7TSC+Gt03YQNpF z1AfXT2Sp9TJe8vQC1pcQn9qc88vfHe9TLOj9iXSfwHz8KZiWBOKh2oqO8o/mqHXVd3V 7C7ojYGnIi/VFvLhbtWrE8p2xe7Rd6n199rxdqJXhkv1N6ufj75opAbi1NNYgOQJcpMy ZzCA== X-Forwarded-Encrypted: i=1; AHgh+RrGj9ylGqt+j+331noifDJOYvX3eFdXjmCva9okML4mZrjIz9IXa2UHsHJc2Qgffx+wwhowbqycTbPRqZI=@vger.kernel.org X-Gm-Message-State: AFuF++kySgIdlPNBvQslxN3LoJ1A0PgWD9ff+DXl3lN7jAW9gt0sVI5y eggGIVbjGDiKgUKHn83uOEcH2l2vkDCMfqDPBYKcfi6Sbc56K9faK0ZW X-Gm-Gg: AR+sD11EilS8Vg8tpRMapYJ5xvzW41gnx02Z6oH4xDBTMdlzKCpZF6yxBqEc8j3KZpV bw/ivzQcD9QyHkIhtwhX/r/5QhJjMcL3vk3UtS5cx7jTVKLOky4DKOeDLCcG4EmdhzOu9y1GMsD 1GCoBaDgF6w1xONzXHMzI6epVd1Xh3nYwnNhy8EzUe7+hwzboPuhvl/UhO8QTmdI3oGg0LHiQLt kjgtu3+Uasl8+GgJsPv1KQ3T8tqplVvRSdJYdx9/HMMwcB9BtWnhCmwDN5c0jejZ1x19iGFEuV8 speRq6bBjjxdiQ22ByysjiA6StGMalvDmDW1DmSgXUyTkVTHHInrECjMFzlA5EMdTbraPgeQkZ8 FWXrQaPxL7Kr/O/S8w0yMSEVf6Lmocekmfo94FMDOWTqidKEsf0GjShONc0CZx/Yg0XnksFeiXE wNeiqRZG05QrjC72oEKahZaviiPlTgaATM8EBQBpE9SRwrCquB7WwDk8rCEf7HQYacPnvtaS87m hxK2VhPKiKY2pMOYJ4NzCarPcx3S6SRjytIgUAjEXCVraKUOZmbZ2q544Ijt7HM8RzXsTAG8oTJ OQvXXN7iJorqg5oOoerJrskFrqgHall3PI8keaGA1gC73t0G4qQhfbCAlWldTiFlXRd+sgg+5+x lnWMYizBhFMplssADh85VMwQenjUKOP0= X-Received: by 2002:a05:6402:5049:b0:6a3:f63a:4997 with SMTP id 4fb4d7f45d1cf-6a582af9535mr4786164a12.3.1787386580114; Sat, 22 Aug 2026 01:16:20 -0700 (PDT) Received: from systembl0wer ([2a02:8308:4092:11f0::f9f]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6a3ff0c327asm10786611a12.8.2026.08.22.01.16.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Aug 2026 01:16:19 -0700 (PDT) Date: Sat, 22 Aug 2026 10:16:18 +0200 From: Joshua Crofts To: Salah Triki Cc: Puranjay Mohan , Jonathan Cameron , David Lechner , Nuno =?UTF-8?B?U8Oh?= , Andy Shevchenko , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] iio: temperature: tmp117: fix calibbias cache update on I2C write failure Message-ID: <20260822101618.2690a7e9@systembl0wer> In-Reply-To: <20260822004929.13643-1-salah.triki@gmail.com> References: <20260822004929.13643-1-salah.triki@gmail.com> X-Mailer: Claws Mail 4.4.0 (GTK 3.24.52; x86_64-redhat-linux-gnu) 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=US-ASCII Content-Transfer-Encoding: 7bit On Sat, 22 Aug 2026 01:49:28 +0100 Salah Triki wrote: > The calibbias cache (data->calibbias) was updated before the I2C > write to TMP117_REG_TEMP_OFFSET was known to succeed. If the write > failed, the function correctly returned an error, but the driver's > internal cache had already been updated to the new value. > > This causes the cache and the actual hardware register to go out of > sync: a subsequent write of the same value would be silently > skipped by the early "if (off == data->calibbias) return 0;" check, > since the cache matches even though the register was never > successfully updated. > > Update data->calibbias only after confirming the I2C write > succeeded, so the cache always reflects the actual state of the > device. > > Fixes: df041e737a38 ("iio: temperature: add driver support for ti tmp117") > Signed-off-by: Salah Triki > --- > drivers/iio/temperature/tmp117.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/iio/temperature/tmp117.c b/drivers/iio/temperature/tmp117.c > index 6bc18616ad15..7d74f401bb80 100644 > --- a/drivers/iio/temperature/tmp117.c > +++ b/drivers/iio/temperature/tmp117.c > @@ -95,15 +95,20 @@ static int tmp117_write_raw(struct iio_dev *indio_dev, struct iio_chan_spec > { > struct tmp117_data *data = iio_priv(indio_dev); > s16 off; > + int ret; > > switch (mask) { > case IIO_CHAN_INFO_CALIBBIAS: > off = clamp_t(int, val, S16_MIN, S16_MAX); > if (off == data->calibbias) > return 0; Add a blank line here. > + ret = i2c_smbus_write_word_swapped(data->client, TMP117_REG_TEMP_OFFSET, off); > + And remove the blank line here - return value checks should be grouped with the function we're checking. > + if (ret) > + return ret; > + > data->calibbias = off; > - return i2c_smbus_write_word_swapped(data->client, > - TMP117_REG_TEMP_OFFSET, off); > + return 0; > > default: > return -EINVAL; -- Kind regards, Joshua Crofts