[PATCH] iio: temperature: tsys02d: Use guard(mutex) in tsys02d_write_raw()

lauraarakaki lauraarakaki23 em gmail.com
Ter Abr 21 12:30:41 -03 2026


Replace the manual mutex_lock()/mutex_unlock() pair in
tsys02d_write_raw() with guard(mutex)() from the scope-based
cleanup helpers (include/linux/cleanup.h).

The previous code stored the return value of
ms_sensors_write_resolution() in a local variable solely to
bridge the gap between the manual mutex_unlock() call and the
return statement. Using guard(mutex)() removes the need for
both the intermediate variable and the explicit unlock call,
since the mutex is released automatically when the function
goes out of scope.

No functional change intended.

Signed-off-by: lauraarakaki <lauraarakaki23 em gmail.com>
---
 drivers/iio/temperature/tsys02d.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/drivers/iio/temperature/tsys02d.c b/drivers/iio/temperature/tsys02d.c
index 0cad27205667..55a55f2f4663 100644
--- a/drivers/iio/temperature/tsys02d.c
+++ b/drivers/iio/temperature/tsys02d.c
@@ -10,6 +10,7 @@
  *  http://www.meas-spec.com/downloads/Digital_Sensor_TSYS02D.pdf
  */
 
+#include <linux/cleanup.h>
 #include <linux/init.h>
 #include <linux/device.h>
 #include <linux/kernel.h>
@@ -62,7 +63,7 @@ static int tsys02d_write_raw(struct iio_dev *indio_dev,
 			     int val, int val2, long mask)
 {
 	struct ms_ht_dev *dev_data = iio_priv(indio_dev);
-	int i, ret;
+	int i;
 
 	switch (mask) {
 	case IIO_CHAN_INFO_SAMP_FREQ:
@@ -72,17 +73,13 @@ static int tsys02d_write_raw(struct iio_dev *indio_dev,
 				break;
 		if (i < 0)
 			return -EINVAL;
-		mutex_lock(&dev_data->lock);
+		guard(mutex)(&dev_data->lock);
 		dev_data->res_index = i;
-		ret = ms_sensors_write_resolution(dev_data, i);
-		mutex_unlock(&dev_data->lock);
-
-		return ret;
+		return ms_sensors_write_resolution(dev_data, i);
 	default:
 		return -EINVAL;
 	}
 }
-
 static const struct iio_chan_spec tsys02d_channels[] = {
 	{
 		.type = IIO_TEMP,
-- 
2.47.3



Mais detalhes sobre a lista de discussão kernel