thermal/drivers/core: Use a char pointer for the cooling device name

[ Upstream commit 58483761810087e5ffdf36e84ac1bf26df909097 ]

We want to have any kind of name for the cooling devices as we do no
longer want to rely on auto-numbering. Let's replace the cooling
device's fixed array by a char pointer to be allocated dynamically
when registering the cooling device, so we don't limit the length of
the name.

Rework the error path at the same time as we have to rollback the
allocations in case of error.

Tested with a dummy device having the name:
 "Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch"

A village on the island of Anglesey (Wales), known to have the longest
name in Europe.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
Tested-by: Ido Schimmel <idosch@nvidia.com>
Link: https://lore.kernel.org/r/20210314111333.16551-1-daniel.lezcano@linaro.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Daniel Lezcano
2021-03-14 12:13:29 +01:00
committed by Greg Kroah-Hartman
parent 79098339ac
commit dcf5ffc91c
3 changed files with 24 additions and 18 deletions

View File

@@ -92,7 +92,7 @@ struct thermal_cooling_device_ops {
struct thermal_cooling_device {
int id;
char type[THERMAL_NAME_LENGTH];
char *type;
struct device device;
struct device_node *np;
void *devdata;