aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVasily Gorbik <[email protected]>2024-12-10 12:35:34 +0100
committerAlexander Gordeev <[email protected]>2024-12-15 23:35:09 +0100
commit282da38b465395c930687974627c24f47ddce5ff (patch)
tree6364fb8f98e65a9aeade18a8b57605eb211eb47e
parent5fa49dd8e521a42379e5e41fcf2c92edaaec0a8b (diff)
s390/mm: Consider KMSAN modules metadata for paging levels
The calculation determining whether to use three- or four-level paging didn't account for KMSAN modules metadata. Include this metadata in the virtual memory size calculation to ensure correct paging mode selection and avoiding potentially unnecessary physical memory size limitations. Fixes: 65ca73f9fb36 ("s390/mm: define KMSAN metadata for vmalloc and modules") Acked-by: Heiko Carstens <[email protected]> Reviewed-by: Alexander Gordeev <[email protected]> Reviewed-by: Ilya Leoshkevich <[email protected]> Signed-off-by: Vasily Gorbik <[email protected]> Signed-off-by: Alexander Gordeev <[email protected]>
-rw-r--r--arch/s390/boot/startup.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/s390/boot/startup.c b/arch/s390/boot/startup.c
index abe6e6c0ab98..6087d38c7235 100644
--- a/arch/s390/boot/startup.c
+++ b/arch/s390/boot/startup.c
@@ -234,6 +234,8 @@ static unsigned long get_vmem_size(unsigned long identity_size,
vsize = round_up(SZ_2G + max_mappable, rte_size) +
round_up(vmemmap_size, rte_size) +
FIXMAP_SIZE + MODULES_LEN + KASLR_LEN;
+ if (IS_ENABLED(CONFIG_KMSAN))
+ vsize += MODULES_LEN * 2;
return size_add(vsize, vmalloc_size);
}