mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 05:34:13 +08:00
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 */
|
/* sysfs I/F */
|
||||||
int thermal_zone_create_device_groups(struct thermal_zone_device *, int);
|
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 *);
|
void thermal_cooling_device_setup_sysfs(struct thermal_cooling_device *);
|
||||||
/* used only at binding time */
|
/* used only at binding time */
|
||||||
ssize_t
|
ssize_t
|
||||||
|
@ -605,6 +605,24 @@ static int create_trip_attrs(struct thermal_zone_device *tz, int mask)
|
|||||||
return 0;
|
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 thermal_zone_create_device_groups(struct thermal_zone_device *tz,
|
||||||
int mask)
|
int mask)
|
||||||
{
|
{
|
||||||
@ -637,6 +655,17 @@ int thermal_zone_create_device_groups(struct thermal_zone_device *tz,
|
|||||||
return 0;
|
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 */
|
/* sys I/F for cooling device */
|
||||||
static ssize_t
|
static ssize_t
|
||||||
thermal_cooling_device_type_show(struct device *dev,
|
thermal_cooling_device_type_show(struct device *dev,
|
||||||
|
Loading…
Reference in New Issue
Block a user