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