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 <sv...@linux.ibm.com>     2020-11-20 14:17:52 +0100
committer       Heiko Carstens <h...@linux.ibm.com>     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: <sta...@vger.kernel.org> # 5.8
Fixes: 0b0ed657fe00 ("s390: remove critical section cleanup from entry.S")
Reported-by: Pierre Morel <pmo...@linux.ibm.com>
Signed-off-by: Sven Schnelle <sv...@linux.ibm.com>
Acked-by: Christian Borntraeger <borntrae...@de.ibm.com>
Reviewed-by: Heiko Carstens <h...@linux.ibm.com>
Signed-off-by: Heiko Carstens <h...@linux.ibm.com>

** 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     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to