From 18dfb0e4c3c3cd5654182833bcf3dfdcef754e6e Mon Sep 17 00:00:00 2001 From: "Rafael J. Wysocki" Date: Tue, 5 Dec 2023 13:26:59 +0100 Subject: [PATCH] thermal: sysfs: Rework the reading of trip point attributes Rework the _show() callback functions for the trip point temperature, hysteresis and type attributes to avoid copying the values of struct thermal_trip fields that they do not use and make them carry out the same validation checks as the corresponding _store() callback functions. No intentional functional impact. Signed-off-by: Rafael J. Wysocki Reviewed-by: Daniel Lezcano --- drivers/thermal/thermal_sysfs.c | 52 ++++++++++++++++----------------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/drivers/thermal/thermal_sysfs.c b/drivers/thermal/thermal_sysfs.c index 06202aa50060a..9e3d8fa01eea4 100644 --- a/drivers/thermal/thermal_sysfs.c +++ b/drivers/thermal/thermal_sysfs.c @@ -83,25 +83,24 @@ trip_point_type_show(struct device *dev, struct device_attribute *attr, char *buf) { struct thermal_zone_device *tz = to_thermal_zone(dev); - struct thermal_trip trip; - int trip_id, result; + enum thermal_trip_type type; + int trip_id; if (sscanf(attr->attr.name, "trip_point_%d_type", &trip_id) != 1) return -EINVAL; mutex_lock(&tz->lock); - if (device_is_registered(dev)) - result = __thermal_zone_get_trip(tz, trip_id, &trip); - else - result = -ENODEV; + if (!device_is_registered(dev)) { + mutex_unlock(&tz->lock); + return -ENODEV; + } - mutex_unlock(&tz->lock); + type = tz->trips[trip_id].type; - if (result) - return result; + mutex_unlock(&tz->lock); - switch (trip.type) { + switch (type) { case THERMAL_TRIP_CRITICAL: return sprintf(buf, "critical\n"); case THERMAL_TRIP_HOT: @@ -163,25 +162,23 @@ trip_point_temp_show(struct device *dev, struct device_attribute *attr, char *buf) { struct thermal_zone_device *tz = to_thermal_zone(dev); - struct thermal_trip trip; - int trip_id, ret; + int trip_id, temp; if (sscanf(attr->attr.name, "trip_point_%d_temp", &trip_id) != 1) return -EINVAL; mutex_lock(&tz->lock); - if (device_is_registered(dev)) - ret = __thermal_zone_get_trip(tz, trip_id, &trip); - else - ret = -ENODEV; + if (!device_is_registered(dev)) { + mutex_unlock(&tz->lock); + return -ENODEV; + } - mutex_unlock(&tz->lock); + temp = tz->trips[trip_id].temperature; - if (ret) - return ret; + mutex_unlock(&tz->lock); - return sprintf(buf, "%d\n", trip.temperature); + return sprintf(buf, "%d\n", temp); } static ssize_t @@ -232,22 +229,23 @@ trip_point_hyst_show(struct device *dev, struct device_attribute *attr, char *buf) { struct thermal_zone_device *tz = to_thermal_zone(dev); - struct thermal_trip trip; - int trip_id, ret; + int trip_id, hyst; if (sscanf(attr->attr.name, "trip_point_%d_hyst", &trip_id) != 1) return -EINVAL; mutex_lock(&tz->lock); - if (device_is_registered(dev)) - ret = __thermal_zone_get_trip(tz, trip_id, &trip); - else - ret = -ENODEV; + if (!device_is_registered(dev)) { + mutex_unlock(&tz->lock); + return -ENODEV; + } + + hyst = tz->trips[trip_id].hysteresis; mutex_unlock(&tz->lock); - return ret ? ret : sprintf(buf, "%d\n", trip.hysteresis); + return sprintf(buf, "%d\n", hyst); } static ssize_t -- 2.30.2