You have been subscribed to a public bug:
commit 0b0ed657fe ("s390: remove critical section cleanup from entry.S")
introduced a problem where FPU registers were not properly restored when
entering SIE. This leads to crashes of applications runnning inside kvm,
as most of the programs in use nowdays are using FPU registers for
backing of general register content.
Fix is upstream:
author Sven Schnelle <[email protected]> 2020-11-20 14:17:52 +0100
committer Heiko Carstens <[email protected]> 2020-11-23 11:52:13
+0100
commit 1179f170b6f0af7bb0b3b7628136eaac450ddf31 (patch)
tree 19e8acb64e0968b41de4899cc1315c41b002839e /arch/s390/kernel/entry.S
parent 78d732e1f326f74f240d416af9484928303d9951 (diff)
download linux-1179f170b6f0af7bb0b3b7628136eaac450ddf31.tar.gz
s390: fix fpu restore in entry.S
We need to disable interrupts in load_fpu_regs(). Otherwise an
interrupt might come in after the registers are loaded, but before
CIF_FPU is cleared in load_fpu_regs(). When the interrupt returns,
CIF_FPU will be cleared and the registers will never be restored.
The entry.S code usually saves the interrupt state in __SF_EMPTY on the
stack when disabling/restoring interrupts. sie64a however saves the pointer
to the sie control block in __SF_SIE_CONTROL, which references the same
location. This is non-obvious to the reader. To avoid thrashing the sie
control block pointer in load_fpu_regs(), move the __SIE_* offsets eight
bytes after __SF_EMPTY on the stack.
Cc: <[email protected]> # 5.8
Fixes: 0b0ed657fe00 ("s390: remove critical section cleanup from entry.S")
Reported-by: Pierre Morel <[email protected]>
Signed-off-by: Sven Schnelle <[email protected]>
Acked-by: Christian Borntraeger <[email protected]>
Reviewed-by: Heiko Carstens <[email protected]>
Signed-off-by: Heiko Carstens <[email protected]>
** Affects: linux (Ubuntu)
Importance: Undecided
Assignee: Skipper Bug Screeners (skipper-screen-team)
Status: New
** Tags: architecture-s39064 bugnameltc-189961 severity-critical
targetmilestone-inin---
--
[UBUNTU 20.10] Applications runing in QEMU/KVM get translation faults
https://bugs.launchpad.net/bugs/1906255
You received this bug notification because you are a member of Kernel Packages,
which is subscribed to linux in Ubuntu.
--
Mailing list: https://launchpad.net/~kernel-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help : https://help.launchpad.net/ListHelp