]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
hwmon: (lm90) Use guard() and scoped_guard() to acquire subsystem lock
authorGuenter Roeck <linux@roeck-us.net>
Wed, 13 May 2026 14:15:54 +0000 (07:15 -0700)
committerGuenter Roeck <linux@roeck-us.net>
Tue, 9 Jun 2026 15:23:00 +0000 (08:23 -0700)
Use guard() and scoped_guard() instead of hwmon_lock() / hwmon_unlock()
to acquire and release the hardware monitoring subsystem lock.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/lm90.c

index c78c96e1bd83fdb51fc22d397ef7e15f4406b3b2..4b9c0ccdf2609fab88a6610e8a30c1ecd8516aac 100644 (file)
@@ -1226,13 +1226,8 @@ static int lm90_update_alarms_locked(struct lm90_data *data, bool force)
 
 static int lm90_update_alarms(struct lm90_data *data, bool force)
 {
-       int err;
-
-       hwmon_lock(data->hwmon_dev);
-       err = lm90_update_alarms_locked(data, force);
-       hwmon_unlock(data->hwmon_dev);
-
-       return err;
+       guard(hwmon_lock)(data->hwmon_dev);
+       return lm90_update_alarms_locked(data, force);
 }
 
 static void lm90_alert_work(struct work_struct *__work)
@@ -2598,9 +2593,9 @@ static void lm90_stop_work(void *_data)
 {
        struct lm90_data *data = _data;
 
-       hwmon_lock(data->hwmon_dev);
-       data->shutdown = true;
-       hwmon_unlock(data->hwmon_dev);
+       scoped_guard(hwmon_lock, data->hwmon_dev) {
+               data->shutdown = true;
+       }
        cancel_delayed_work_sync(&data->alert_work);
        cancel_work_sync(&data->report_work);
 }
@@ -2946,17 +2941,17 @@ static void lm90_alert(struct i2c_client *client, enum i2c_alert_protocol type,
                 */
                struct lm90_data *data = i2c_get_clientdata(client);
 
-               hwmon_lock(data->hwmon_dev);
-               if (!data->shutdown && (data->flags & LM90_HAVE_BROKEN_ALERT) &&
-                   (data->current_alarms & data->alert_alarms)) {
-                       if (!(data->config & 0x80)) {
-                               dev_dbg(&client->dev, "Disabling ALERT#\n");
-                               lm90_update_confreg(data, data->config | 0x80);
+               scoped_guard(hwmon_lock, data->hwmon_dev) {
+                       if (!data->shutdown && (data->flags & LM90_HAVE_BROKEN_ALERT) &&
+                           (data->current_alarms & data->alert_alarms)) {
+                               if (!(data->config & 0x80)) {
+                                       dev_dbg(&client->dev, "Disabling ALERT#\n");
+                                       lm90_update_confreg(data, data->config | 0x80);
+                               }
+                               schedule_delayed_work(&data->alert_work,
+                                       max_t(int, HZ, msecs_to_jiffies(data->update_interval)));
                        }
-                       schedule_delayed_work(&data->alert_work,
-                               max_t(int, HZ, msecs_to_jiffies(data->update_interval)));
                }
-               hwmon_unlock(data->hwmon_dev);
        } else {
                dev_dbg(&client->dev, "Everything OK\n");
        }