Markos Chandras <markos.chandras@xxxxxxxxxx> writes: > Set good default FPU flags (FR0) for O32 binaries similar to what the > kernel does for the N64/N32 ones. This also fixes a regression > introduced in commit 46490b572544 ("MIPS: kernel: elf: Improve the > overall ABI and FPU mode checks") when MIPS_O32_FP64_SUPPORT is > disabled. In that case, the mips_set_personality_fp() did not set the > FPU mode at all because it assumed that the FPU mode was already set > properly. That led to O32 userland problems. > > Cc: Matthew Fortune <Matthew.Fortune@xxxxxxxxxx> > Cc: Paul Burton <paul.burton@xxxxxxxxxx> > Reported-by: Mans Rullgard <mans@xxxxxxxxx> > Fixes: 46490b572544 ("MIPS: kernel: elf: Improve the overall ABI and FPU mode checks") > Signed-off-by: Markos Chandras <markos.chandras@xxxxxxxxxx> Tested-by: Mans Rullgard <mans@xxxxxxxxx> > --- > arch/mips/include/asm/elf.h | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/arch/mips/include/asm/elf.h b/arch/mips/include/asm/elf.h > index 535f196ffe02..694925a26924 100644 > --- a/arch/mips/include/asm/elf.h > +++ b/arch/mips/include/asm/elf.h > @@ -294,6 +294,9 @@ do { \ > if (personality(current->personality) != PER_LINUX) \ > set_personality(PER_LINUX); \ > \ > + clear_thread_flag(TIF_HYBRID_FPREGS); \ > + set_thread_flag(TIF_32BIT_FPREGS); \ > + \ > mips_set_personality_fp(state); \ > \ > current->thread.abi = &mips_abi; \ > @@ -319,6 +322,8 @@ do { \ > do { \ > set_thread_flag(TIF_32BIT_REGS); \ > set_thread_flag(TIF_32BIT_ADDR); \ > + clear_thread_flag(TIF_HYBRID_FPREGS); \ > + set_thread_flag(TIF_32BIT_FPREGS); \ > \ > mips_set_personality_fp(state); \ > \ > -- > 2.3.0 > -- Måns Rullgård mans@xxxxxxxxx