diff options
author | Kevin Hilman <khilman@linaro.org> | 2015-09-08 09:27:24 -0700 |
---|---|---|
committer | Kevin Hilman <khilman@linaro.org> | 2015-09-08 09:27:24 -0700 |
commit | 42ed40620897231c6eb5c40a161d374e4dd09f09 (patch) | |
tree | 056f907dafc83c30e508d7eb822150285e255be2 | |
parent | 417f54239f760856db32c520ae542ff288145c13 (diff) | |
parent | 6d3b41e9d5b6fc0eca68a02acef1a9fb3521b826 (diff) |
Merge branch 'v3.18/topic/thermal' into linux-linaro-lsk-v3.18lsk-v3.18-15.09
* v3.18/topic/thermal:
thermal: power_allocator: allocate with kcalloc what you free with kfree
thermal: power_allocator: do not use devm* interfaces
thermal: cpu_cooling: Check memory allocation of power_table
-rw-r--r-- | drivers/thermal/cpu_cooling.c | 4 | ||||
-rw-r--r-- | drivers/thermal/power_allocator.c | 11 |
2 files changed, 9 insertions, 6 deletions
diff --git a/drivers/thermal/cpu_cooling.c b/drivers/thermal/cpu_cooling.c index 07a9629edf4b..6509c61b9648 100644 --- a/drivers/thermal/cpu_cooling.c +++ b/drivers/thermal/cpu_cooling.c @@ -289,6 +289,10 @@ static int build_dyn_power_table(struct cpufreq_cooling_device *cpufreq_device, } power_table = kcalloc(num_opps, sizeof(*power_table), GFP_KERNEL); + if (!power_table) { + ret = -ENOMEM; + goto unlock; + } for (freq = 0, i = 0; opp = dev_pm_opp_find_freq_ceil(dev, &freq), !IS_ERR(opp); diff --git a/drivers/thermal/power_allocator.c b/drivers/thermal/power_allocator.c index 63a448f9d93b..251676902869 100644 --- a/drivers/thermal/power_allocator.c +++ b/drivers/thermal/power_allocator.c @@ -258,8 +258,7 @@ static int allocate_power(struct thermal_zone_device *tz, BUILD_BUG_ON(sizeof(*req_power) != sizeof(*granted_power)); BUILD_BUG_ON(sizeof(*req_power) != sizeof(*extra_actor_power)); BUILD_BUG_ON(sizeof(*req_power) != sizeof(*weighted_req_power)); - req_power = devm_kcalloc(&tz->device, num_actors * 5, - sizeof(*req_power), GFP_KERNEL); + req_power = kcalloc(num_actors * 5, sizeof(*req_power), GFP_KERNEL); if (!req_power) { ret = -ENOMEM; goto unlock; @@ -334,7 +333,7 @@ static int allocate_power(struct thermal_zone_device *tz, max_allocatable_power, current_temp, (s32)control_temp - (s32)current_temp); - devm_kfree(&tz->device, req_power); + kfree(req_power); unlock: mutex_unlock(&tz->lock); @@ -426,7 +425,7 @@ static int power_allocator_bind(struct thermal_zone_device *tz) return -EINVAL; } - params = devm_kzalloc(&tz->device, sizeof(*params), GFP_KERNEL); + params = kzalloc(sizeof(*params), GFP_KERNEL); if (!params) return -ENOMEM; @@ -468,14 +467,14 @@ static int power_allocator_bind(struct thermal_zone_device *tz) return 0; free: - devm_kfree(&tz->device, params); + kfree(params); return ret; } static void power_allocator_unbind(struct thermal_zone_device *tz) { dev_dbg(&tz->device, "Unbinding from thermal zone %d\n", tz->id); - devm_kfree(&tz->device, tz->governor_data); + kfree(tz->governor_data); tz->governor_data = NULL; } |