diff mbox

[3/5] Thermal: fix empty list checking method.

Message ID 1350387889-15324-4-git-send-email-hongbo.zhang@linaro.com
State New
Headers show

Commit Message

Hongbo Zhang Oct. 16, 2012, 11:44 a.m. UTC
From: "hongbo.zhang" <hongbo.zhang@linaro.com>

Is is not reliable to check the list entry pointer after
list_for_each_entry loop, list_empty should be used instead.

Signed-off-by: hongbo.zhang <hongbo.zhang@linaro.com>
---
 drivers/thermal/cpu_cooling.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Viresh Kumar Oct. 17, 2012, 2:24 p.m. UTC | #1
On 16 October 2012 17:14, hongbo.zhang <hongbo.zhang@linaro.org> wrote:
> From: "hongbo.zhang" <hongbo.zhang@linaro.com>
>
> Is is not reliable to check the list entry pointer after
> list_for_each_entry loop, list_empty should be used instead.
>
> Signed-off-by: hongbo.zhang <hongbo.zhang@linaro.com>
> ---
>  drivers/thermal/cpu_cooling.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/thermal/cpu_cooling.c b/drivers/thermal/cpu_cooling.c
> index b6b4c2a..d196230 100644
> --- a/drivers/thermal/cpu_cooling.c
> +++ b/drivers/thermal/cpu_cooling.c
> @@ -247,12 +247,13 @@ static int cpufreq_get_max_state(struct thermal_cooling_device *cdev,
>         struct cpufreq_frequency_table *table;
>
>         mutex_lock(&cooling_cpufreq_lock);
> +       if (list_empty(&cooling_cpufreq_list))
> +               goto return_get_max_state;
> +
>         list_for_each_entry(cpufreq_device, &cooling_cpufreq_list, node) {
>                 if (cpufreq_device && cpufreq_device->cool_dev == cdev)
>                         break;
>         }
> -       if (cpufreq_device == NULL)
> -               goto return_get_max_state;

I am surprised, why is it written like this in the first place :)

Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
diff mbox

Patch

diff --git a/drivers/thermal/cpu_cooling.c b/drivers/thermal/cpu_cooling.c
index b6b4c2a..d196230 100644
--- a/drivers/thermal/cpu_cooling.c
+++ b/drivers/thermal/cpu_cooling.c
@@ -247,12 +247,13 @@  static int cpufreq_get_max_state(struct thermal_cooling_device *cdev,
 	struct cpufreq_frequency_table *table;
 
 	mutex_lock(&cooling_cpufreq_lock);
+	if (list_empty(&cooling_cpufreq_list))
+		goto return_get_max_state;
+
 	list_for_each_entry(cpufreq_device, &cooling_cpufreq_list, node) {
 		if (cpufreq_device && cpufreq_device->cool_dev == cdev)
 			break;
 	}
-	if (cpufreq_device == NULL)
-		goto return_get_max_state;
 
 	maskPtr = &cpufreq_device->allowed_cpus;
 	cpu = cpumask_any(maskPtr);