Xi Ruoyao
200d17b226
mips: Call lose_fpu(0) before initializing fcr31 in mips_set_personality_nan
...
commit 59be5c35850171e307ca5d3d703ee9ff4096b948 upstream.
If we still own the FPU after initializing fcr31, when we are preempted
the dirty value in the FPU will be read out and stored into fcr31,
clobbering our setting. This can cause an improper floating-point
environment after execve(). For example:
zsh% cat measure.c
#include <fenv.h>
int main() { return fetestexcept(FE_INEXACT); }
zsh% cc measure.c -o measure -lm
zsh% echo $((1.0/3)) # raising FE_INEXACT
0.33333333333333331
zsh% while ./measure; do ; done
(stopped in seconds)
Call lose_fpu(0) before setting fcr31 to prevent this.
Closes: https://lore.kernel.org/linux-mips/7a6aa1bbdbbe2e63ae96ff163fab0349f58f1b9e.camel@xry111.site/
Fixes: 9b26616c8d ("MIPS: Respect the ISA level in FCSR handling")
Cc: stable@vger.kernel.org
Signed-off-by: Xi Ruoyao <xry111@xry111.site>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-02-23 08:24:53 +01:00
..
alchemy
MIPS: Alchemy: Fix an out-of-bound access in db1550_dev_setup()
2024-01-25 14:34:30 -08:00
ar7
ath25
ath79
bcm47xx
MIPS: BCM47XX: Cast memcmp() of function to (void *)
2022-10-26 13:22:47 +02:00
bcm63xx
MIPS: BCM63xx: Add check for NULL for clk in clk_enable
2023-01-18 11:40:58 +01:00
bmips
mips: bmips: BCM6358: disable RAC flush for TP1
2023-04-05 11:16:43 +02:00
boot
mips: disable branch profiling in boot/decompress.o
2021-07-20 16:10:53 +02:00
cavium-octeon
MIPS: OCTEON: warn only once if deprecated link status is being used
2023-01-18 11:40:58 +01:00
cobalt
configs
Remove DECnet support from kernel
2023-06-21 15:44:10 +02:00
crypto
dec
mips: DEC: honor CONFIG_MIPS_FP_SUPPORT=n
2022-04-15 14:18:15 +02:00
emma
fw
MIPS: fw: Allow firmware to pass a empty env
2023-05-17 11:35:32 +02:00
generic
MIPS: generic/yamon-dt: fix uninitialized variable error
2021-11-26 10:47:19 +01:00
include
MIPS: cpu-features: Use boot_cpu_type for CPU type based features
2023-08-30 16:27:21 +02:00
jazz
dma-mapping: drop the dev argument to arch_sync_dma_for_*
2023-04-05 11:16:43 +02:00
jz4740
MIPS: fix build with gcc-12
2022-05-18 09:47:28 +02:00
kernel
mips: Call lose_fpu(0) before initializing fcr31 in mips_set_personality_nan
2024-02-23 08:24:53 +01:00
kvm
MIPS: KVM: Fix a build warning about variable set but not used
2023-12-08 08:44:24 +01:00
lantiq
MIPS: vpe-mt: drop physical_memsize
2023-03-11 16:43:52 +01:00
lasat
treewide: Replace DECLARE_TASKLET() with DECLARE_TASKLET_OLD()
2023-04-20 12:07:32 +02:00
lib
treewide: Remove uninitialized_var() usage
2023-06-09 10:29:01 +02:00
loongson32
MIPS: Loongson32: Fix PHY-mode being left unspecified
2022-09-28 11:04:06 +02:00
loongson64
MIPS: loongsoon64: Reserve memory below starting pfn to prevent Oops
2021-07-19 08:53:13 +02:00
math-emu
mm
treewide: Remove uninitialized_var() usage
2023-06-09 10:29:01 +02:00
mti-malta
MIPS: Malta: fix alignment of the devicetree buffer
2021-09-22 12:26:26 +02:00
net
bpf, mips: Validate conditional branch offsets
2021-10-13 10:08:17 +02:00
netlogic
oprofile
paravirt
pci
MIPS: pci-legacy: stop using of_pci_range_to_resource
2021-05-14 09:44:30 +02:00
pic32
MIPS: pic32: treat port as signed integer
2022-12-08 11:22:57 +01:00
pistachio
pmcs-msp71xx
pnx833x
power
ralink
MIPS: Use address-of operator on section symbols
2022-05-15 19:54:46 +02:00
rb532
MIPS: RB532: fix return value of __setup handler
2022-04-15 14:18:16 +02:00
sgi-ip22
sgi-ip27
sgi-ip32
sibyte
sni
MIPS: sni: Fix the build
2021-11-26 10:47:16 +01:00
tools
txx9
vdso
MIPS: VDSO: Use CLANG_FLAGS instead of filtering out '--target='
2021-03-07 12:20:41 +01:00
vr41xx
MIPS: Remove repetitive increase irq_err_count
2022-06-29 08:58:46 +02:00
Kbuild
Kbuild.platforms
Kconfig
mips/cpu: Switch to arch_cpu_finalize_init()
2023-08-08 19:56:34 +02:00
Kconfig.debug
Makefile
mips: Fix non-POSIX regexp
2021-08-12 13:20:57 +02:00
Makefile.postlink