linux/arch/mips
James Hogan f8483988ca MIPS: lose_fpu(): Disable FPU when MSA enabled
The lose_fpu() function only disables the FPU in CP0_Status.CU1 if the
FPU is in use and MSA isn't enabled.

This isn't necessarily a problem because KSTK_STATUS(current), the
version of CP0_Status stored on the kernel stack on entry from user
mode, does always get updated and gets restored when returning to user
mode, but I don't think it was intended, and it is inconsistent with the
case of only the FPU being in use. Sometimes leaving the FPU enabled may
also mask kernel bugs where FPU operations are executed when the FPU
might not be enabled.

So lets disable the FPU in the MSA case too.

Fixes: 33c771ba5c ("MIPS: save/disable MSA in lose_fpu")
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/9323/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2015-04-10 15:41:51 +02:00
..
alchemy Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2015-02-21 19:41:38 -08:00
ar7
ath25
ath79
bcm47xx
bcm63xx MIPS: BCM63xx: Move bcm63xx_gpio_init() to bcm63xx_register_devices(). 2015-03-25 13:47:55 +01:00
bcm3384 MIPS: BCM3384: Fix outdated use of mips_cpu_intc_init() 2015-02-19 13:47:55 +01:00
boot Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2015-02-21 19:41:38 -08:00
cavium-octeon MIPS: OCTEON: Use correct CSR to soft reset 2015-03-25 13:47:59 +01:00
cobalt
configs Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2015-02-21 19:41:38 -08:00
dec
emma
fw MIPS: ARC: Use __noreturn / unreachable in ARC termination functions. 2015-01-13 16:04:27 +01:00
include MIPS: lose_fpu(): Disable FPU when MSA enabled 2015-04-10 15:41:51 +02:00
jazz
jz4740 MTD updates for 3.20-rc1 2015-02-18 08:01:44 -08:00
kernel MIPS: kernel: entry.S: Set correct ISA level for mips_ihb 2015-04-10 15:41:46 +02:00
kvm KVM: MIPS: Enable after disabling interrupt 2015-03-02 19:18:12 -03:00
lantiq Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
lasat
lib MIPS: lib: memset: Add MIPS R6 support 2015-02-17 15:37:30 +00:00
loongson MIPS: Loongson-3: Add IRQF_NO_SUSPEND to Cascade irqaction 2015-03-25 13:47:55 +01:00
loongson1
math-emu MIPS: Handle MIPS IV, V and R2 FPU instructions on MIPS R6 as well 2015-02-17 15:37:37 +00:00
mm Revert "MIPS: Avoid pipeline stalls on some MIPS32R2 cores." 2015-04-10 15:41:49 +02:00
mti-malta MIPS: Malta: Detect and fix bad memsize values 2015-04-10 15:41:49 +02:00
mti-sead3 MIPS: sead3: Corrected get_c0_perfcount_int 2015-02-20 23:53:09 +01:00
net module: remove mod arg from module_free, rename module_memfree(). 2015-01-20 11:38:33 +10:30
netlogic MIPS: Netlogic: Fix for SATA PHY init 2015-04-10 15:41:43 +02:00
oprofile
paravirt
pci MIPS: ralink: Fix bad config symbol in PCI makefile. 2015-04-10 15:41:50 +02:00
pmcs-msp71xx kconfig: use bool instead of boolean for type definition attributes 2015-01-07 13:08:04 +01:00
pnx833x
power
ralink MIPS: ralink: add missing symbol for RALINK_ILL_ACC 2015-04-10 15:41:51 +02:00
rb532 MIPS: Replace use of phys_t with phys_addr_t. 2014-11-24 22:47:31 +01:00
sgi-ip22 MIPS: ip22-gio: Remove legacy suspend/resume support 2015-02-20 13:30:55 +01:00
sgi-ip27 MIPS: IP27: Use __noreturn instead of open coded attributes in declarations. 2015-01-13 16:04:28 +01:00
sgi-ip32 MIPS: IP32: Use __noreturn instead of open coded attributes in declarations. 2015-01-13 16:04:28 +01:00
sibyte MIPS: Replace use of phys_t with phys_addr_t. 2014-11-24 22:47:31 +01:00
sni
txx9 Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
vr41xx
Kbuild
Kbuild.platforms
Kconfig MIPS: Kconfig: Fix typo for the r2-to-r6 emulator kernel parameter 2015-04-10 15:41:45 +02:00
Kconfig.debug MIPS: kernel: elf: Improve the overall ABI and FPU mode checks 2015-02-17 15:37:39 +00:00
Makefile MIPS: boot: Provide more uImage options 2015-02-20 14:17:43 +01:00