Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 68000a0d authored by Thara Gopinath's avatar Thara Gopinath Committed by Zhang Rui
Browse files

thermal: Fix locking in cooling device sysfs update cur_state



Sysfs interface to update cooling device cur_state does not
currently holding cooling device lock sometimes leading to
stale values in cur_state if getting updated simultanelously
from user space and thermal framework. Adding the proper locking
code fixes this issue.

Signed-off-by: default avatarThara Gopinath <thara.gopinath@linaro.org>
Signed-off-by: default avatarZhang Rui <rui.zhang@intel.com>
parent 964f4843
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -712,11 +712,14 @@ cur_state_store(struct device *dev, struct device_attribute *attr,
	if ((long)state < 0)
		return -EINVAL;

	mutex_lock(&cdev->lock);

	result = cdev->ops->set_cur_state(cdev, state);
	if (result)
		return result;
	if (!result)
		thermal_cooling_device_stats_update(cdev, state);
	return count;

	mutex_unlock(&cdev->lock);
	return result ? result : count;
}

static struct device_attribute