|
|
@@ -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;
|
|
|
- thermal_cooling_device_stats_update(cdev, state);
|
|
|
- return count;
|
|
|
+ if (!result)
|
|
|
+ thermal_cooling_device_stats_update(cdev, state);
|
|
|
+
|
|
|
+ mutex_unlock(&cdev->lock);
|
|
|
+ return result ? result : count;
|
|
|
}
|
|
|
|
|
|
static struct device_attribute
|