hwmon: (lm90) Use guard() and scoped_guard() to acquire subsystem lock

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>
This commit is contained in:
Guenter Roeck 2026-05-13 07:15:54 -07:00
parent d1e720c732
commit bf3bd1f587

View 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");
}