diff mbox

[BUG,FIX] PM / cpu_domains: Check for NULL callbacks

Message ID 1455816573-43849-1-git-send-email-lina.iyer@linaro.org (mailing list archive)
State New, archived
Headers show

Commit Message

Lina Iyer Feb. 18, 2016, 5:29 p.m. UTC
Check for NULL platform callback before calling.

Signed-off-by: Lina Iyer <lina.iyer@linaro.org>
---
 drivers/base/power/cpu_domains.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

Comments

Rafael J. Wysocki Feb. 18, 2016, 5:46 p.m. UTC | #1
On Thu, Feb 18, 2016 at 6:29 PM, Lina Iyer <lina.iyer@linaro.org> wrote:
> Check for NULL platform callback before calling.
>
> Signed-off-by: Lina Iyer <lina.iyer@linaro.org>
> ---
>  drivers/base/power/cpu_domains.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/base/power/cpu_domains.c b/drivers/base/power/cpu_domains.c
> index 7069411..bcaa474 100644
> --- a/drivers/base/power/cpu_domains.c
> +++ b/drivers/base/power/cpu_domains.c
> @@ -157,16 +157,22 @@ static int cpu_pd_power_on(struct generic_pm_domain *genpd)
>  {
>         struct cpu_pm_domain *pd = to_cpu_pd(genpd);
>
> -       return pd->ops.power_on();
> +       if (pd->ops.power_on)
> +               return pd->ops.power_on();
> +
> +       return 0;
>  }

I usually write things like that as

return pd->ops.power_on ? pd->ops.power_on() : 0;

That gets the job done in just one line of code instead of 4 and in
one statement instead of 3.

Thanks,
Rafael
Lina Iyer Feb. 18, 2016, 10:51 p.m. UTC | #2
On Thu, Feb 18 2016 at 10:46 -0700, Rafael J. Wysocki wrote:
>On Thu, Feb 18, 2016 at 6:29 PM, Lina Iyer <lina.iyer@linaro.org> wrote:
>> Check for NULL platform callback before calling.
>>
>> Signed-off-by: Lina Iyer <lina.iyer@linaro.org>
>> ---
>>  drivers/base/power/cpu_domains.c | 10 ++++++++--
>>  1 file changed, 8 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/base/power/cpu_domains.c b/drivers/base/power/cpu_domains.c
>> index 7069411..bcaa474 100644
>> --- a/drivers/base/power/cpu_domains.c
>> +++ b/drivers/base/power/cpu_domains.c
>> @@ -157,16 +157,22 @@ static int cpu_pd_power_on(struct generic_pm_domain *genpd)
>>  {
>>         struct cpu_pm_domain *pd = to_cpu_pd(genpd);
>>
>> -       return pd->ops.power_on();
>> +       if (pd->ops.power_on)
>> +               return pd->ops.power_on();
>> +
>> +       return 0;
>>  }
>
>I usually write things like that as
>
>return pd->ops.power_on ? pd->ops.power_on() : 0;
>
>That gets the job done in just one line of code instead of 4 and in
>one statement instead of 3.
>
Sure. Thanks. Will roll this in with the next submission.

Thanks,
Lina
diff mbox

Patch

diff --git a/drivers/base/power/cpu_domains.c b/drivers/base/power/cpu_domains.c
index 7069411..bcaa474 100644
--- a/drivers/base/power/cpu_domains.c
+++ b/drivers/base/power/cpu_domains.c
@@ -157,16 +157,22 @@  static int cpu_pd_power_on(struct generic_pm_domain *genpd)
 {
 	struct cpu_pm_domain *pd = to_cpu_pd(genpd);
 
-	return pd->ops.power_on();
+	if (pd->ops.power_on)
+		return pd->ops.power_on();
+
+	return 0;
 }
 
 static int cpu_pd_power_off(struct generic_pm_domain *genpd)
 {
 	struct cpu_pm_domain *pd = to_cpu_pd(genpd);
 
-	return pd->ops.power_off(genpd->state_idx,
+	if (pd->ops.power_off)
+		return pd->ops.power_off(genpd->state_idx,
 			genpd->states[genpd->state_idx].param,
 			pd->cpus);
+
+	return 0;
 }
 
 /**