Fixed hwmon_register_device() error regression
PATCH 1/1 Fixed hwmon_register_device() error regression
--- drivers/thermal/thermal_hwmon.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-)
drivers/thermal/thermal_hwmon.c +3 -17
@@ -59,14 +59,6 @@ static LIST_HEAD(thermal_hwmon_list);static DEFINE_MUTEX (thermal_hwmon_list_lock);static ssize_t -name_show (struct device *dev,struct device_attribute *attr,char *buf) -{ -struct thermal_hwmon_device *hwmon =dev_get_drvdata (dev); -return sprintf (buf,"%s\n" , hwmon->type); -} -static DEVICE_ATTR_RO (name); - -static ssize_t temp_input_show (struct device *dev,struct device_attribute *attr,char *buf) {int temperature;
@@ -165,15 +157,12 @@ int thermal_add_hwmon_sysfs(struct thermal_zone_device *tz)INIT_LIST_HEAD (&hwmon->tz_list);strlcpy (hwmon->type, tz->type,THERMAL_NAME_LENGTH ); - hwmon->device =hwmon_device_register (NULL ); + hwmon->device =hwmon_device_register_with_info (NULL , hwmon->type, + hwmon,NULL ,NULL );if (IS_ERR (hwmon->device)) { result =PTR_ERR (hwmon->device); goto free_mem; } -dev_set_drvdata (hwmon->device, hwmon); - result =device_create_file (hwmon->device, &dev_attr_name); -if (result) - goto free_mem; register_sys_interface: temp =kzalloc (sizeof (*temp),GFP_KERNEL );
@@ -222,10 +211,8 @@ int thermal_add_hwmon_sysfs(struct thermal_zone_device *tz) free_temp_mem:kfree (temp); unregister_name: -if (new_hwmon_device) { -device_remove_file (hwmon->device, &dev_attr_name); +if (new_hwmon_device)hwmon_device_unregister (hwmon->device); - } free_mem:if (new_hwmon_device)kfree (hwmon);
@@ -267,7 +254,6 @@ void thermal_remove_hwmon_sysfs(struct thermal_zone_device *tz)list_del (&hwmon->node);mutex_unlock (&thermal_hwmon_list_lock); -device_remove_file (hwmon->device, &dev_attr_name);hwmon_device_unregister (hwmon->device);kfree (hwmon); }
Signature · 1 line
2.13.0
Zhang Rui
reviewerHi, Josh
Quoted 1 line · Josh Benson
Signed-off-by Josh Benson <[email protected]>
First of all, you're missing a proper changelog here. Second, this patch has already been reverted by commit 3feb479cea37 because the name of some thermal devices contains special characters which is incompatible with hwmon.
thanks,
rui
Quoted 69 lines
---
drivers/thermal/thermal_hwmon.c | 20 +++-----------------1 file changed, 3 insertions(+), 17 deletions(-)drivers/thermal/thermal_hwmon.c +0
-0@@ -59,14 +59,6 @@ static LIST_HEAD(thermal_hwmon_list); static DEFINE_MUTEX(thermal_hwmon_list_lock);
staticssize_t
-name_show(struct device *dev, structdevice_attribute*attr, char *buf)drivers/thermal/thermal_hwmon.c +0
-7-{ -struct thermal_hwmon_device *hwmon =dev_get_drvdata (dev); -return sprintf (buf,"%s\n" , hwmon->type); -} -static DEVICE_ATTR_RO (name); - -static ssize_ttemp_input_show(struct device *dev, struct
device_attribute*attr, char *buf)
{
int temperature;drivers/thermal/thermal_hwmon.c +0
-0@@ -165,15 +157,12 @@ int thermal_add_hwmon_sysfs(struct thermal_zone_device *tz)
INIT_LIST_HEAD(&hwmon->tz_list);strlcpy(hwmon->type, tz->type, THERMAL_NAME_LENGTH);drivers/thermal/thermal_hwmon.c +1
-1- hwmon->device =hwmon_device_register (NULL ); + hwmon->device = hwmon_device_register_with_info(NULL, hwmon-Quoted 1 line
type,
drivers/thermal/thermal_hwmon.c +1
-0+ hwmon, NULL,NULL);
if (IS_ERR(hwmon->device)) {
result =PTR_ERR(hwmon->device);
gotofree_mem;
}drivers/thermal/thermal_hwmon.c +0
-4-dev_set_drvdata (hwmon->device, hwmon); - result =device_create_file (hwmon->device, &dev_attr_name); -if (result) - goto free_mem;
register_sys_interface:
temp =kzalloc(sizeof(*temp), GFP_KERNEL);drivers/thermal/thermal_hwmon.c +0
-0@@ -222,10 +211,8 @@ int thermal_add_hwmon_sysfs(struct thermal_zone_device *tz)
free_temp_mem:
kfree(temp);
unregister_name:drivers/thermal/thermal_hwmon.c +1
-2-if (new_hwmon_device) { -device_remove_file (hwmon->device, &dev_attr_name); +if (new_hwmon_device)
hwmon_device_unregister(hwmon->device);drivers/thermal/thermal_hwmon.c +0
-1- }
free_mem:
if (new_hwmon_device)
kfree(hwmon);drivers/thermal/thermal_hwmon.c +0
-0@@ -267,7 +254,6 @@ void thermal_remove_hwmon_sysfs(struct thermal_zone_device *tz) list_del(&hwmon->node); mutex_unlock(&thermal_hwmon_list_lock);drivers/thermal/thermal_hwmon.c +0
-1-device_remove_file (hwmon->device, &dev_attr_name);
hwmon_device_unregister(hwmon->device);
kfree(hwmon);
}