Skip to content

Commit

Permalink
ACPI:Fix goto flows in thermal-sys
Browse files Browse the repository at this point in the history
This patch fixes two minor bugs in thermal_sys:
(a) The flow of goto's in thermal_hwmon_add_sysfs.
(b) Remove the temp*_crit only if there is a get_crit_temp defined, in
    thermal_remove_hwmon_sysfs.

Signed-off-by: Durgadoss R <durgadoss.r@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
  • Loading branch information
Durgadoss R authored and Len Brown committed Mar 23, 2011
1 parent 521cb40 commit b299eb5
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions drivers/thermal/thermal_sys.c
Original file line number Diff line number Diff line change
Expand Up @@ -499,7 +499,7 @@ thermal_add_hwmon_sysfs(struct thermal_zone_device *tz)
dev_set_drvdata(hwmon->device, hwmon);
result = device_create_file(hwmon->device, &dev_attr_name);
if (result)
goto unregister_hwmon_device;
goto free_mem;

register_sys_interface:
tz->hwmon = hwmon;
Expand All @@ -513,7 +513,7 @@ thermal_add_hwmon_sysfs(struct thermal_zone_device *tz)
sysfs_attr_init(&tz->temp_input.attr.attr);
result = device_create_file(hwmon->device, &tz->temp_input.attr);
if (result)
goto unregister_hwmon_device;
goto unregister_name;

if (tz->ops->get_crit_temp) {
unsigned long temperature;
Expand All @@ -527,7 +527,7 @@ thermal_add_hwmon_sysfs(struct thermal_zone_device *tz)
result = device_create_file(hwmon->device,
&tz->temp_crit.attr);
if (result)
goto unregister_hwmon_device;
goto unregister_input;
}
}

Expand All @@ -539,9 +539,9 @@ thermal_add_hwmon_sysfs(struct thermal_zone_device *tz)

return 0;

unregister_hwmon_device:
device_remove_file(hwmon->device, &tz->temp_crit.attr);
unregister_input:
device_remove_file(hwmon->device, &tz->temp_input.attr);
unregister_name:
if (new_hwmon_device) {
device_remove_file(hwmon->device, &dev_attr_name);
hwmon_device_unregister(hwmon->device);
Expand All @@ -560,7 +560,8 @@ thermal_remove_hwmon_sysfs(struct thermal_zone_device *tz)

tz->hwmon = NULL;
device_remove_file(hwmon->device, &tz->temp_input.attr);
device_remove_file(hwmon->device, &tz->temp_crit.attr);
if (tz->ops->get_crit_temp)
device_remove_file(hwmon->device, &tz->temp_crit.attr);

mutex_lock(&thermal_list_lock);
list_del(&tz->hwmon_node);
Expand Down

0 comments on commit b299eb5

Please sign in to comment.