linux/arch/s390/boot
Heiko Carstens da90575767 s390/mem_detect: fix tprot() program check new psw handling
The tprot() 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>
2021-06-18 16:41:24 +02:00
..
compressed s390/boot: add zstd support 2021-06-18 16:41:22 +02:00
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
als.c s390/facilities: move stfl information from lowcore to global data 2021-06-07 17:06:58 +02:00
boot.h s390: setup kernel memory layout early 2021-06-18 16:41:19 +02:00
cmdline.c s390: move ipl block and cmd line handling to early boot phase 2018-10-09 11:21:14 +02:00
ctype.c s390: move ipl block and cmd line handling to early boot phase 2018-10-09 11:21:14 +02:00
ebcdic.c s390/decompressor: avoid reusing uncompressed image objects 2018-06-25 10:14:39 +02:00
head_kdump.S s390/decompressor: correct some asm symbols annotations 2020-11-20 19:19:11 +01:00
head.S s390/ipl: make parameter area accessible via struct parmarea 2021-06-07 17:06:59 +02:00
install.sh s390/arch: install kernels with their proper version ID 2020-02-19 17:27:24 +01:00
ipl_parm.c s390/ipl_parm: use register pair instead of register asm 2021-06-18 16:41:23 +02:00
ipl_report.c s390/ipl: read IPL report at early boot 2019-04-26 12:34:05 +02:00
ipl_vmparm.c s390: move ipl block and cmd line handling to early boot phase 2018-10-09 11:21:14 +02:00
kaslr.c s390: unify identity mapping limits handling 2020-11-20 19:19:10 +01:00
machine_kexec_reloc.c s390/kernel: build a relocatable kernel 2019-04-29 10:47:10 +02:00
Makefile s390/boot: enable .bss section for compressed kernel 2020-09-16 14:08:47 +02:00
mem_detect.c s390/mem_detect: fix tprot() program check new psw handling 2021-06-18 16:41:24 +02:00
mem.S s390/decompressor: reuse lib/mem.S for mem functions 2018-06-25 10:14:39 +02:00
pgm_check_info.c s390/decompressor: print cmdline and BEAR on pgm_check 2020-11-20 19:19:11 +01:00
sclp_early_core.c s390/decompressor: avoid reusing uncompressed image objects 2018-06-25 10:14:39 +02:00
startup.c s390: setup kernel memory layout early 2021-06-18 16:41:19 +02:00
string.c kasan, x86, s390: update undef CONFIG_KASAN 2020-12-22 12:55:08 -08:00
text_dma.S s390: remove unused _swsusp_reset_dma 2020-09-29 15:00:58 +02:00
uv.c s390: setup kernel memory layout early 2021-06-18 16:41:19 +02:00
version.c s390: enable detection of kernel version from bzImage 2019-07-23 10:43:50 +02:00