linux/arch/s390/boot
Vasily Gorbik 1a71a9eaf3 s390/boot: fix mem_detect extended area allocation
[ Upstream commit 22476f47b6 ]

Allocation of mem_detect extended area was not considered neither
in commit 9641b8cc73 ("s390/ipl: read IPL report at early boot")
nor in commit b2d24b97b2 ("s390/kernel: add support for kernel address
space layout randomization (KASLR)"). As a result mem_detect extended
theoretically may overlap with ipl report or randomized kernel image
position. But as mem_detect code will allocate extended area only
upon exceeding 255 online regions (which should alternate with offline
memory regions) it is not seen in practice.

To make sure mem_detect extended area does not overlap with ipl report
or randomized kernel position extend usage of "safe_addr". Make initrd
handling and mem_detect extended area allocation code move it further
right and make KASLR takes in into consideration as well.

Fixes: 9641b8cc73 ("s390/ipl: read IPL report at early boot")
Fixes: b2d24b97b2 ("s390/kernel: add support for kernel address space layout randomization (KASLR)")
Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2023-03-10 09:33:00 +01:00
..
.gitignore s390/boot: get rid of startup archive 2022-05-06 20:45:14 +02:00
als.c s390/facilities: move stfl information from lowcore to global data 2021-06-07 17:06:58 +02:00
boot.h s390/boot: fix mem_detect extended area allocation 2023-03-10 09:33:00 +01:00
clz_ctz.c s390/boot: get rid of startup archive 2022-05-06 20:45:14 +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
decompressor.c s390/boot: cleanup decompressor header files 2023-03-10 09:33:00 +01:00
decompressor.h s390/boot: cleanup decompressor header files 2023-03-10 09:33:00 +01:00
ebcdic.c s390/decompressor: avoid reusing uncompressed image objects 2018-06-25 10:14:39 +02:00
head.S s390/head: get rid of 31 bit leftovers 2022-05-18 13:31:07 +02:00
head_kdump.S s390/decompressor: correct some asm symbols annotations 2020-11-20 19:19:11 +01:00
install.sh kbuild: factor out the common installation code into scripts/install.sh 2022-05-11 21:45:53 +09:00
ipl_data.c s390/boot: convert parmarea to C 2022-05-06 20:45:15 +02:00
ipl_parm.c s390/boot: convert parmarea to C 2022-05-06 20:45:15 +02:00
ipl_report.c s390/boot: introduce boot data 'initrd_data' 2021-07-27 09:39:15 +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/boot: fix mem_detect extended area allocation 2023-03-10 09:33:00 +01:00
machine_kexec_reloc.c s390/kernel: build a relocatable kernel 2019-04-29 10:47:10 +02:00
Makefile s390: always build relocatable kernel 2022-11-08 19:32:32 +01:00
mem.S s390/decompressor: reuse lib/mem.S for mem functions 2018-06-25 10:14:39 +02:00
mem_detect.c s390/boot: fix mem_detect extended area allocation 2023-03-10 09:33:00 +01:00
pgm_check_info.c s390: rename last_break to pgm_last_break 2021-10-26 15:21:28 +02:00
sclp_early_core.c s390/boot: move sclp early buffer from fixed address in asm to C 2021-07-27 09:39:15 +02:00
startup.c s390/boot: fix mem_detect extended area allocation 2023-03-10 09:33:00 +01:00
string.c kasan, x86, s390: update undef CONFIG_KASAN 2020-12-22 12:55:08 -08:00
uv.c s390 updates for 5.20 merge window 2022-08-06 17:05:21 -07:00
uv.h s390/boot: cleanup adjust_to_uv_max() function 2022-07-28 18:05:23 +02:00
version.c kbuild: build init/built-in.a just once 2022-09-29 04:40:15 +09:00
vmlinux.lds.S s390/boot: add secure boot trailer 2022-10-26 14:47:31 +02:00