diff mbox

thermal: cpu_cooling: check for allocation failure

Message ID 20150330112144.GC27144@mwanda (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Dan Carpenter March 30, 2015, 11:21 a.m. UTC
If this fails, then we're likely in trouble anyway, but it's nice to
keep the code free from static checker warnings so you don't miss more
important bugs.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

--
To unsubscribe from this list: send the line "unsubscribe linux-pm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Javi Merino March 30, 2015, 12:23 p.m. UTC | #1
On Mon, Mar 30, 2015 at 12:21:44PM +0100, Dan Carpenter wrote:
> If this fails, then we're likely in trouble anyway, but it's nice to
> keep the code free from static checker warnings so you don't miss more
> important bugs.
> 
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> 
> diff --git a/drivers/thermal/cpu_cooling.c b/drivers/thermal/cpu_cooling.c
> index c497414..3a01dfd 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;
> +	}

This fix is already in Eduardo's tree and is scheduled for 4.1:

https://git.kernel.org/cgit/linux/kernel/git/evalenti/linux-soc-thermal.git/commit/?h=linus&id=65a7db8371d1203adb871d240d46b040fd6b4e1d

Cheers,
Javi

--
To unsubscribe from this list: send the line "unsubscribe linux-pm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/thermal/cpu_cooling.c b/drivers/thermal/cpu_cooling.c
index c497414..3a01dfd 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);