OpenCloudOS-Kernel/arch/mips
Xi Ruoyao 33f49a6835 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-01-31 16:19:13 -08:00
..
alchemy MIPS: Alchemy: Fix an out-of-bound access in db1550_dev_setup() 2024-01-25 15:35:50 -08:00
ar7 mips: ar7: include linux/gpio/driver.h 2023-03-10 13:40:18 +02:00
ath25 MIPS: ath25: Constify static irq_domain_ops 2022-02-22 09:39:03 +01:00
ath79 MIPS: ath79: remove obsolete ATH79_DEV_* configs 2023-03-17 10:28:04 +01:00
bcm47xx mips: implement the new page table range API 2023-08-24 16:20:22 -07:00
bcm63xx MIPS: BCM63xx: Add check for NULL for clk in clk_enable 2022-12-09 23:37:06 +01:00
bmips MIPS: Explicitly include correct DT includes 2023-07-25 10:42:01 +02:00
boot MIPS: dts: loongson: drop incorrect dwmac fallback compatible 2024-01-20 11:51:43 +01:00
cavium-octeon just cleanups and fixes 2023-09-07 10:35:14 -07:00
cobalt
configs just cleanups and fixes 2023-09-07 10:35:14 -07:00
crypto crypto: Kconfig - simplify cipher entries 2022-08-26 18:50:43 +08:00
dec MIPS: fix typos in comments 2022-05-04 22:22:59 +02:00
fw MIPS: fw: Allow firmware to pass a empty env 2023-04-12 15:07:36 +02:00
generic mips: ingenic: Enable EXT/2 divider on JZ4750/55/60 if EXT is 24 MHz 2023-06-09 09:54:17 +02:00
include mips: dmi: Fix early remap on MIPS32 2024-01-25 15:35:49 -08:00
ingenic
jazz MIPS: fix typos in comments 2022-05-04 22:22:59 +02:00
kernel mips: Call lose_fpu(0) before initializing fcr31 in mips_set_personality_nan 2024-01-31 16:19:13 -08:00
kvm KVM: MIPS: fix -Wunused-but-set-variable warning 2023-10-12 11:25:40 -04:00
lantiq MIPS: lantiq: register smp_ops on non-smp platforms 2024-01-31 16:19:13 -08:00
lib mips: replace #include <asm/export.h> with #include <linux/export.h> 2023-08-15 10:22:23 +02:00
loongson2ef MIPS: loongson2ef: Add missing break in cs5536_isa 2023-04-12 15:12:24 +02:00
loongson32 MIPS: loongson32: Remove regs-rtc.h 2023-07-28 11:42:16 +02:00
loongson64 MIPS: Loongson64: Enable DMA noncoherent support 2023-12-13 18:45:35 +01:00
math-emu MIPS: Fix comment typo 2022-09-12 15:33:24 +02:00
mm mips: Fix max_mapnr being uninitialized on early stages 2024-01-31 16:18:52 -08:00
mti-malta MIPS: Remove deprecated CONFIG_MIPS_CMP 2023-04-12 15:01:09 +02:00
n64
net bpf, mips: Implement R4000 workarounds for JIT 2023-02-28 14:52:55 +01:00
pci just cleanups and fixes 2023-09-07 10:35:14 -07:00
pic32 MIPS: Fixup explicit DT include clean-up 2023-07-28 11:41:09 +02:00
power
ralink MIPS: More explicit DT include clean-ups 2023-07-28 11:41:18 +02:00
rb532 MIPS: rb532: move GPIOD definition into C-files 2022-03-30 20:26:26 +02:00
sgi-ip22 driver core: make struct bus_type.uevent() take a const * 2023-01-27 13:45:52 +01:00
sgi-ip27 MIPS: SGI-IP27: Fix platform-device leak in bridge_platform_create() 2022-09-19 16:33:27 +02:00
sgi-ip30 MIPS: SGI-IP30: Fix platform-device leak in bridge_platform_create() 2022-09-19 16:32:54 +02:00
sgi-ip32 MIPS: Allow modules to set board_be_handler 2021-11-09 16:07:26 +01:00
sibyte mips: Fix spacing issue 2023-06-09 09:49:59 +02:00
sni
tools MIPS: fix typos in comments 2022-05-04 22:22:59 +02:00
txx9 MIPS: TXx9: Do PCI error checks on own line 2023-08-28 09:59:06 +02:00
vdso MIPS: VDSO: Conditionally export __vdso_gettimeofday() 2023-08-23 09:06:38 +02:00
Kbuild kbuild: remove --include-dir MAKEFLAG from top Makefile 2023-02-05 18:51:22 +09:00
Kbuild.platforms MIPS: sibyte: Remove unused config option SIBYTE_BCM1x55 2023-03-17 10:27:08 +01:00
Kconfig MIPS: Loongson64: Enable DMA noncoherent support 2023-12-13 18:45:35 +01:00
Kconfig.debug
Makefile Revert MIPS: Loongson: Fix build error when make modules_install 2023-07-25 10:42:01 +02:00
Makefile.postlink kbuild: remove --include-dir MAKEFLAG from top Makefile 2023-02-05 18:51:22 +09:00