forked from Minki/linux
thermal: core: Add some new helper functions to free resources
In order to easily free resources allocated by 'thermal_zone_create_device_groups()' we need 2 new helper functions. The first one undoes 'thermal_zone_create_device_groups()'. The 2nd one undoes 'create_trip_attrs()', which is a function called by 'thermal_zone_create_device_groups()'. Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
This commit is contained in:
parent
039f6cf5b5
commit
32fa5ba317
@ -71,6 +71,7 @@ int thermal_build_list_of_policies(char *buf);
|
||||
|
||||
/* sysfs I/F */
|
||||
int thermal_zone_create_device_groups(struct thermal_zone_device *, int);
|
||||
void thermal_zone_destroy_device_groups(struct thermal_zone_device *);
|
||||
void thermal_cooling_device_setup_sysfs(struct thermal_cooling_device *);
|
||||
/* used only at binding time */
|
||||
ssize_t
|
||||
|
@ -605,6 +605,24 @@ static int create_trip_attrs(struct thermal_zone_device *tz, int mask)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* destroy_trip_attrs() - destroy attributes for trip points
|
||||
* @tz: the thermal zone device
|
||||
*
|
||||
* helper function to free resources allocated by create_trip_attrs()
|
||||
*/
|
||||
static void destroy_trip_attrs(struct thermal_zone_device *tz)
|
||||
{
|
||||
if (!tz)
|
||||
return;
|
||||
|
||||
kfree(tz->trip_type_attrs);
|
||||
kfree(tz->trip_temp_attrs);
|
||||
if (tz->ops->get_trip_hyst)
|
||||
kfree(tz->trip_hyst_attrs);
|
||||
kfree(tz->trips_attribute_group.attrs);
|
||||
}
|
||||
|
||||
int thermal_zone_create_device_groups(struct thermal_zone_device *tz,
|
||||
int mask)
|
||||
{
|
||||
@ -637,6 +655,17 @@ int thermal_zone_create_device_groups(struct thermal_zone_device *tz,
|
||||
return 0;
|
||||
}
|
||||
|
||||
void thermal_zone_destroy_device_groups(struct thermal_zone_device *tz)
|
||||
{
|
||||
if (!tz)
|
||||
return;
|
||||
|
||||
if (tz->trips)
|
||||
destroy_trip_attrs(tz);
|
||||
|
||||
kfree(tz->device.groups);
|
||||
}
|
||||
|
||||
/* sys I/F for cooling device */
|
||||
static ssize_t
|
||||
thermal_cooling_device_type_show(struct device *dev,
|
||||
|
Loading…
Reference in New Issue
Block a user