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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.10-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.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.


>From 2e6c7747730296a6d4fd700894286db1132598c4 Mon Sep 17 00:00:00 2001
From: James Hogan <james.hogan@xxxxxxxxxx>
Date: Thu, 16 Feb 2017 12:39:01 +0000
Subject: MIPS: Force o32 fp64 support on 32bit MIPS64r6 kernels

From: James Hogan <james.hogan@xxxxxxxxxx>

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")
Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx>
Reviewed-by: Paul Burton <paul.burton@xxxxxxxxxx>
Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Patchwork: https://patchwork.linux-mips.org/patch/15310/
Signed-off-by: James Hogan <james.hogan@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
 arch/mips/Kconfig |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1526,7 +1526,7 @@ config CPU_MIPS64_R6
 	select CPU_SUPPORTS_HIGHMEM
 	select CPU_SUPPORTS_MSA
 	select GENERIC_CSUM
-	select MIPS_O32_FP64_SUPPORT if MIPS32_O32
+	select MIPS_O32_FP64_SUPPORT if 32BIT || MIPS32_O32
 	select HAVE_KVM
 	help
 	  Choose this option to build a kernel for release 6 or later of the


Patches currently in stable-queue which might be from james.hogan@xxxxxxxxxx are

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



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]