power: supply: axp288_fuel_gauge: Take lock before updating the valid flag
authorHans de Goede <hdegoede@redhat.com>
Thu, 6 Jan 2022 11:06:07 +0000 (12:06 +0100)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Tue, 1 Feb 2022 13:29:34 +0000 (14:29 +0100)
The valid flag is protected by the mutex, so code clearing it
should take the mutex before cleating the valid flag.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/axp288_fuel_gauge.c

index f7dce02..53d0e82 100644 (file)
@@ -476,7 +476,9 @@ static irqreturn_t fuel_gauge_thread_handler(int irq, void *dev)
                dev_warn(info->dev, "Spurious Interrupt!!!\n");
        }
 
+       mutex_lock(&info->lock);
        info->valid = 0; /* Force updating of the cached registers */
+       mutex_unlock(&info->lock);
 
        power_supply_changed(info->bat);
        return IRQ_HANDLED;
@@ -486,7 +488,9 @@ static void fuel_gauge_external_power_changed(struct power_supply *psy)
 {
        struct axp288_fg_info *info = power_supply_get_drvdata(psy);
 
+       mutex_lock(&info->lock);
        info->valid = 0; /* Force updating of the cached registers */
+       mutex_unlock(&info->lock);
        power_supply_changed(info->bat);
 }