hwmon: (lm90) Only disable alerts if not already disabled
authorGuenter Roeck <linux@roeck-us.net>
Tue, 28 Dec 2021 15:59:26 +0000 (07:59 -0800)
committerGuenter Roeck <linux@roeck-us.net>
Wed, 13 Jul 2022 15:38:19 +0000 (08:38 -0700)
It was observed that the alert handler may be called from the i2c core
even after alerts have already been disabled. Only disable alerts if
they have not already been disabled.

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

index c7bf288c8401648d1ab777f650b790ffd6a238b2..3f49b2e5e9c4c991a72c82931d186b08e6d4b823 100644 (file)
@@ -2660,8 +2660,10 @@ static void lm90_alert(struct i2c_client *client, enum i2c_alert_protocol type,
 
                if ((data->flags & LM90_HAVE_BROKEN_ALERT) &&
                    (data->current_alarms & data->alert_alarms)) {
-                       dev_dbg(&client->dev, "Disabling ALERT#\n");
-                       lm90_update_confreg(data, data->config | 0x80);
+                       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)));
                }