Since "s390: fix fpu restore in entry.S" is needed to fix "s390: remove
critical section cleanup from entry.S" and "s390: remove critical
section cleanup from entry.S" got introduced with kernel 5.8, this
affects kernel 5.8 only - and with that only groovy and later.

And since "s390: fix fpu restore in entry.S" landed upstream in linux-next 
(with 'next-20201124' and '5.10-rc5) and got also tagged for 5.8 stable ("Cc: 
<[email protected]> # 5.8"),
this ticket is just a tracker to make sure the fix is really picked up by the 
kernel team
with a future LP bug like "Groovy update: v5.8.? upstream stable release".

** Changed in: ubuntu-z-systems
     Assignee: (unassigned) => Skipper Bug Screeners (skipper-screen-team)

** Changed in: linux (Ubuntu)
     Assignee: Skipper Bug Screeners (skipper-screen-team) => Frank Heimes 
(fheimes)

** Changed in: ubuntu-z-systems
   Importance: Undecided => Critical

** Changed in: ubuntu-z-systems
       Status: New => Triaged

** Also affects: linux (Ubuntu Groovy)
   Importance: Undecided
       Status: New

** Changed in: linux (Ubuntu Groovy)
     Assignee: (unassigned) => Frank Heimes (fheimes)

** Changed in: linux (Ubuntu)
     Assignee: Frank Heimes (fheimes) => (unassigned)

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1906255

Title:
  [UBUNTU 20.10] Applications runing in QEMU/KVM get translation faults

Status in Ubuntu on IBM z Systems:
  Triaged
Status in linux package in Ubuntu:
  New
Status in linux source package in Groovy:
  New

Bug description:
  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]>

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-z-systems/+bug/1906255/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to