mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-11 23:23:52 +08:00
acpi: thermal: Fix error handling in the register function
The acpi_thermal_register_thermal_zone() is missing any error handling. This needs to be fixed. Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Reviewed-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Reviewed-by: Amit Kucheria <amit.kucheria@linaro.org> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Link: https://lore.kernel.org/r/20200629122925.21729-2-andrzej.p@collabora.com
This commit is contained in:
parent
9ebcfadb06
commit
172066cc31
@ -901,23 +901,35 @@ static int acpi_thermal_register_thermal_zone(struct acpi_thermal *tz)
|
||||
result = sysfs_create_link(&tz->device->dev.kobj,
|
||||
&tz->thermal_zone->device.kobj, "thermal_zone");
|
||||
if (result)
|
||||
return result;
|
||||
goto unregister_tzd;
|
||||
|
||||
result = sysfs_create_link(&tz->thermal_zone->device.kobj,
|
||||
&tz->device->dev.kobj, "device");
|
||||
if (result)
|
||||
return result;
|
||||
goto remove_tz_link;
|
||||
|
||||
status = acpi_bus_attach_private_data(tz->device->handle,
|
||||
tz->thermal_zone);
|
||||
if (ACPI_FAILURE(status))
|
||||
return -ENODEV;
|
||||
if (ACPI_FAILURE(status)) {
|
||||
result = -ENODEV;
|
||||
goto remove_dev_link;
|
||||
}
|
||||
|
||||
tz->tz_enabled = 1;
|
||||
|
||||
dev_info(&tz->device->dev, "registered as thermal_zone%d\n",
|
||||
tz->thermal_zone->id);
|
||||
|
||||
return 0;
|
||||
|
||||
remove_dev_link:
|
||||
sysfs_remove_link(&tz->thermal_zone->device.kobj, "device");
|
||||
remove_tz_link:
|
||||
sysfs_remove_link(&tz->device->dev.kobj, "thermal_zone");
|
||||
unregister_tzd:
|
||||
thermal_zone_device_unregister(tz->thermal_zone);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static void acpi_thermal_unregister_thermal_zone(struct acpi_thermal *tz)
|
||||
|
Loading…
Reference in New Issue
Block a user