Skip to contentSkip to conversation

Patch "MIPS: Force o32 fp64 support on 32bit MIPS64r6 kernels" has been added to the 4.4-stable tree

PATCH [email protected] 1 participant 1 message Apr 10, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

MIPS: Force o32 fp64 support on 32bit MIPS64r6 kernels

to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:

     mips-force-o32-fp64-support-on-32bit-mips64r6-kernels.patch

and it can be found in the queue-4.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 2e6c7747730296a6d4fd700894286db1132598c4 Mon Sep 17 00:00:00 2001

From: James Hogan <[email protected]>
Date: Thu, 16 Feb 2017 12:39:01 +0000
Subject: MIPS: Force o32 fp64 support on 32bit MIPS64r6 kernels

From: James Hogan <[email protected]>

commit 2e6c7747730296a6d4fd700894286db1132598c4 upstream.

When a 32-bit kernel is configured to support MIPS64r6 (CPU_MIPS64_R6), MIPS_O32_FP64_SUPPORT won't be selected as it should be because MIPS32_O32 is disabled (o32 is already the default ABI available on 32-bit kernels).

This results in userland FP breakage as CP0_Status.FR is read-only 1 since r6 (when an FPU is present) so __enable_fpu() will fail to clear FR. This causes the FPU emulator to get used which will incorrectly emulate 32-bit FPU registers.

Force o32 fp64 support in this case by also selecting MIPS_O32_FP64_SUPPORT from CPU_MIPS64_R6 if 32BIT.

Fixes 4e9d324d4288 ("MIPS: Require O32 FP64 support for MIPS64 with O32 compat")
Cc Ralf Baechle <[email protected]>

Patchwork: https://patchwork.linux-mips.org/patch/15310/

---
 arch/mips/Kconfig |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/mips/Kconfig +1 -1
@@ -1412,7 +1412,7 @@ config CPU_MIPS32_R6
 	select CPU_SUPPORTS_MSA
 	select GENERIC_CSUM
 	select HAVE_KVM
-	select MIPS_O32_FP64_SUPPORT
+	select MIPS_O32_FP64_SUPPORT if 32BIT
 	help
 	  Choose this option to build a kernel for release 6 or later of the
 	  MIPS32 architecture.  New MIPS processors, starting with the Warrior

Patches currently in stable-queue which might be from [email protected] are

queue-4.4/mips-end-spinlocks-with-.insn.patch queue-4.4/metag-usercopy-add-missing-fixups.patch queue-4.4/metag-usercopy-add-early-abort-to-copy_to_user.patch queue-4.4/mips-ralink-fix-typos-in-rt3883-pinctrl.patch queue-4.4/metag-usercopy-set-flags-before-addz.patch queue-4.4/metag-usercopy-fix-src-fixup-in-from-user-rapf-loops.patch queue-4.4/metag-usercopy-drop-unused-macros.patch queue-4.4/mips-lantiq-fix-missing-xbar-kernel-panic.patch queue-4.4/metag-usercopy-zero-rest-of-buffer-from-copy_from_user.patch queue-4.4/metag-usercopy-fix-alignment-error-checking.patch queue-4.4/mips-force-o32-fp64-support-on-32bit-mips64r6-kernels.patch