[PATCHv2] cobalt/x86: fix condition in eager fpu code for kernels < 4.14

Mauro Salvini mauro.salvini at smigroup.net
Tue Jan 8 15:17:11 CET 2019


On Mon, 2019-01-07 at 14:04 +0100, Henning Schild wrote:
> From: Henning Schild <henning.schild at siemens.com>
> 
> We should mark the current task as not owning the fpu anymore if it
> does
> actually own the fpu, not if the fpu itself is active.
> 
> Fixes cb52e6c7438fa
> 
> Reported-by: Mauro Salvini <mauro.salvini at smigroup.net>
> Signed-off-by: Henning Schild <henning.schild at siemens.com>
> ---
>  kernel/cobalt/arch/x86/thread.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/kernel/cobalt/arch/x86/thread.c
> b/kernel/cobalt/arch/x86/thread.c
> index a09560075..ba807ac1e 100644
> --- a/kernel/cobalt/arch/x86/thread.c
> +++ b/kernel/cobalt/arch/x86/thread.c
> @@ -475,7 +475,7 @@ void xnarch_leave_root(struct xnthread *root)
>  	switch_fpu_finish(&current->thread.fpu, smp_processor_id());
>  #else
>  	/* mark current thread as not owning the FPU anymore */
> -	if (&current->thread.fpu.fpstate_active)
> +	if (fpregs_active())
>  		fpregs_deactivate(&current->thread.fpu);
>  #endif
>  }

Hi all,

I tried to launch xeno-test several times under same previous
conditions and I confirm that this patch fixes the bug.

A side note: would not #include in
kernel/cobalt/arch/x86/thread.c lines 47,48 and 54 be redundant with
same includes in kernel/cobalt/arch/x86/include/asm/xenomai/thread.h
(that is indirectly included in thread.c)?

Thanks, regards
Mauro



More information about the Xenomai mailing list