summaryrefslogtreecommitdiffstats
path: root/drivers/thermal/cpu_cooling.c
diff options
context:
space:
mode:
authorJavi Merino <javi.merino@arm.com>2015-03-20 19:20:13 +0100
committerEduardo Valentin <edubezval@gmail.com>2015-05-05 06:27:54 +0200
commit0cdf97e1ad8d796313de051528f06c1b16f3a679 (patch)
treec549490cf55763470c4e07b2767c126a65bec3d8 /drivers/thermal/cpu_cooling.c
parentti-soc-thermal: request temperature periodically if hw can't do that itself (diff)
downloadlinux-0cdf97e1ad8d796313de051528f06c1b16f3a679.tar.xz
linux-0cdf97e1ad8d796313de051528f06c1b16f3a679.zip
thermal: cpu_cooling: Check memory allocation of power_table
We allocate the power_table in memory but we don't test whether the allocation succeeded. Return -ENOMEM if kcalloc() fails. Fixes: e0128d8ab423 ("thermal: cpu_cooling: implement the power cooling device API") Cc: Eduardo Valentin <edubezval@gmail.com> Cc: Zhang Rui <rui.zhang@intel.com> Reported-by: kbuild test robot <fengguang.wu@intel.com> Signed-off-by: Javi Merino <javi.merino@arm.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
Diffstat (limited to 'drivers/thermal/cpu_cooling.c')
-rw-r--r--drivers/thermal/cpu_cooling.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/thermal/cpu_cooling.c b/drivers/thermal/cpu_cooling.c
index c4974144c787..3a01dfd5b29c 100644
--- a/drivers/thermal/cpu_cooling.c
+++ b/drivers/thermal/cpu_cooling.c
@@ -329,6 +329,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);