]> git.baikalelectronics.ru Git - kernel.git/commit
s390/ipl_parm: fix program check new psw handling
authorHeiko Carstens <hca@linux.ibm.com>
Mon, 14 Jun 2021 12:49:31 +0000 (14:49 +0200)
committerVasily Gorbik <gor@linux.ibm.com>
Fri, 18 Jun 2021 14:41:23 +0000 (16:41 +0200)
commit0122a71d061484d1b12ac9f467e6d082190542af
tree65ecf94b8fad64012b76c139390946b630fa7235
parent5bd7fad53377b04f812329da9024c173381d3a35
s390/ipl_parm: fix program check new psw handling

The __diag308() inline asm temporarily changes the program check new
psw to redirect a potential program check on the diag instruction.
Restoring of the program check new psw is done in C code behind the
inline asm.

This can be problematic, especially if the function is inlined, since
the compiler can reorder instructions in such a way that a different
instruction, which may result in a program check, might be executed
before the program check new psw has been restored.

To avoid such a scenario move restoring into the inline asm. For
consistency reasons move also saving of the original program check new
psw into the inline asm.

Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/boot/ipl_parm.c