[PATCH] ARM: OMAP2+: Handle errors from cpu_pm_enter()

Grygorii Strashko grygorii.strashko at ti.com
Fri Feb 9 12:08:34 PST 2018



On 02/09/2018 11:47 AM, Tony Lindgren wrote:
> Let's add error handling since we actually might get some.
> 
> Cc: Dave Gerlach <d-gerlach at ti.com>
> Cc: Tero Kristo <t-kristo at ti.com>
> Signed-off-by: Tony Lindgren <tony at atomide.com>
> ---
>   arch/arm/mach-omap2/cpuidle44xx.c | 17 ++++++++++-------
>   1 file changed, 10 insertions(+), 7 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/cpuidle44xx.c b/arch/arm/mach-omap2/cpuidle44xx.c
> --- a/arch/arm/mach-omap2/cpuidle44xx.c
> +++ b/arch/arm/mach-omap2/cpuidle44xx.c
> @@ -125,6 +125,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
>   {
>   	struct idle_statedata *cx = state_ptr + index;
>   	u32 mpuss_can_lose_context = 0;
> +	int error;
>   
>   	/*
>   	 * CPU0 has to wait and stay ON until CPU1 is OFF state.
> @@ -158,7 +159,9 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
>   	 * Call idle CPU PM enter notifier chain so that
>   	 * VFP and per CPU interrupt context is saved.
>   	 */
> -	cpu_pm_enter();
> +	error = cpu_pm_enter();
> +	if (error)
> +		goto cpu_pm_out;
>   
>   	if (dev->cpu == 0) {
>   		pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state);
> @@ -196,18 +199,18 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
>   		}
>   	}
>   
> -	/*
> -	 * Call idle CPU PM exit notifier chain to restore
> -	 * VFP and per CPU IRQ context.
> -	 */
> -	cpu_pm_exit();
> -
>   	/*
>   	 * Call idle CPU cluster PM exit notifier chain
>   	 * to restore GIC and wakeupgen context.
>   	 */
>   	if (dev->cpu == 0 && mpuss_can_lose_context)
>   		cpu_cluster_pm_exit();
> +cpu_pm_out:
> +	/*
> +	 * Call idle CPU PM exit notifier chain to restore
> +	 * VFP and per CPU IRQ context.
> +	 */
> +	cpu_pm_exit();

It looks ok, in general, but you've changed order of calls here,
so may be commit message need to be updated


>   
>   	tick_broadcast_exit();
>   
> 

-- 
regards,
-grygorii



More information about the linux-arm-kernel mailing list