On Thu, Feb 19, 2015 at 03:32:14PM +0100, Jan Kiszka wrote:
> On return from exception, we want to check if the current context is
> root or head to take the fast exit in the latter case. TIP_HEAD is set
> then, thus we have to check for 'ne' (Z==0) after tst.
> 
> This affects only non-legacy users.
> 
> Signed-off-by: Jan Kiszka <[email protected]>
> ---
> 
> This is for 3.14, but it should equally well apply to 3.16. Fixes both
> sigdebug test as well as the weird sshd deaths on the virtual vexpress
> target.
> 
>  arch/arm/kernel/entry-armv.S | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
> index a608340..f6ef839 100644
> --- a/arch/arm/kernel/entry-armv.S
> +++ b/arch/arm/kernel/entry-armv.S
> @@ -736,8 +736,8 @@ ENTRY(ret_from_exception)
>       get_thread_info tsk
>       ldr     r0, [tsk, #TI_IPIPE]
>       tst     r0, #_TIP_HEAD
> - THUMB(      it eq)
> -     beq     __ipipe_ret_to_user_irqs_disabled  @ Fast exit path over 
> non-root domains
> + THUMB(      it ne)
> +     bne     __ipipe_ret_to_user_irqs_disabled  @ Fast exit path
> over non-root domains

Mmm. Looks suspicious. The semantics of the PSR flags with tst is
contrary to to what one would believe. No, from compiling a small
example, it would seem you are right.

-- 
                                            Gilles.

_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to