]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
s390/mm: Consider KMSAN modules metadata for paging levels
authorVasily Gorbik <gor@linux.ibm.com>
Tue, 10 Dec 2024 11:35:34 +0000 (12:35 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 27 Dec 2024 13:01:59 +0000 (14:01 +0100)
[ Upstream commit 282da38b465395c930687974627c24f47ddce5ff ]

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 <hca@linux.ibm.com>
Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/s390/boot/startup.c

index c8f149ad77e584cba92fcac3e33fb6bd9caab688..c2ee0745f59edcf78cf9d75a846d5d6b242d8d12 100644 (file)
@@ -231,6 +231,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);
 }