diff mbox

ARM: v7-M: Use ret_to_user_from_irq in PendSV handler

Message ID 1445818252-13175-1-git-send-email-ezequiel@vanguardiasur.com.ar (mailing list archive)
State New, archived
Headers show

Commit Message

Ezequiel Garcia Oct. 26, 2015, 12:10 a.m. UTC
The PendSV handler calls v7m_exception_entry which
disables IRQs. Therefore, since IRQs are already disabled,
the PendSV handler can return using ret_to_user_from_irq.

Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
---
Tested on a NXP LPC43xx platform.

 arch/arm/kernel/entry-v7m.S | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Uwe Kleine-König Oct. 26, 2015, 7:50 a.m. UTC | #1
On Sun, Oct 25, 2015 at 09:10:52PM -0300, Ezequiel Garcia wrote:
> The PendSV handler calls v7m_exception_entry which
> disables IRQs. Therefore, since IRQs are already disabled,
> the PendSV handler can return using ret_to_user_from_irq.
> 
> Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
Looks right. How did you notice this?

Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

Best regards
Uwe

> ---
> Tested on a NXP LPC43xx platform.
> 
>  arch/arm/kernel/entry-v7m.S | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/kernel/entry-v7m.S b/arch/arm/kernel/entry-v7m.S
> index b6c8bb9315e7..907534f97053 100644
> --- a/arch/arm/kernel/entry-v7m.S
> +++ b/arch/arm/kernel/entry-v7m.S
> @@ -88,7 +88,7 @@ __pendsv_entry:
>  	@ execute the pending work, including reschedule
>  	get_thread_info tsk
>  	mov	why, #0
> -	b	ret_to_user
> +	b	ret_to_user_from_irq
>  ENDPROC(__pendsv_entry)
>  
>  /*
> -- 
> 2.5.2
> 
>
Ezequiel Garcia Oct. 26, 2015, 1:01 p.m. UTC | #2
On 26 October 2015 at 04:50, Uwe Kleine-König
<u.kleine-koenig@pengutronix.de> wrote:
> On Sun, Oct 25, 2015 at 09:10:52PM -0300, Ezequiel Garcia wrote:
>> The PendSV handler calls v7m_exception_entry which
>> disables IRQs. Therefore, since IRQs are already disabled,
>> the PendSV handler can return using ret_to_user_from_irq.
>>
>> Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
> Looks right. How did you notice this?
>

Just reading the code.

> Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
>

Thanks, I'll queue this in Russell's patch tracking system.
diff mbox

Patch

diff --git a/arch/arm/kernel/entry-v7m.S b/arch/arm/kernel/entry-v7m.S
index b6c8bb9315e7..907534f97053 100644
--- a/arch/arm/kernel/entry-v7m.S
+++ b/arch/arm/kernel/entry-v7m.S
@@ -88,7 +88,7 @@  __pendsv_entry:
 	@ execute the pending work, including reschedule
 	get_thread_info tsk
 	mov	why, #0
-	b	ret_to_user
+	b	ret_to_user_from_irq
 ENDPROC(__pendsv_entry)
 
 /*