Miroslav Franc c1875a
From: Vasily Gorbik <gor@linux.ibm.com>
Miroslav Franc c1875a
Date: Fri, 27 Jan 2023 14:03:07 +0100
Miroslav Franc c1875a
Subject: s390/mem_detect: fix detect_memory() error handling
Miroslav Franc c1875a
Git-commit: 3400c35a4090704e6c465449616ab7e67a9209e7
Miroslav Franc c1875a
Patch-mainline: v6.3-rc1
Miroslav Franc c1875a
References: git-fixes bsc#1211691
Miroslav Franc c1875a
Miroslav Franc c1875a
Currently if for some reason sclp_early_read_info() fails,
Miroslav Franc c1875a
sclp_early_get_memsize() will not set max_physmem_end and it
Miroslav Franc c1875a
will stay uninitialized. Any garbage value other than 0 will lead
Miroslav Franc c1875a
to detect_memory() taking wrong path or returning a garbage value
Miroslav Franc c1875a
as max_physmem_end. To avoid that simply initialize max_physmem_end.
Miroslav Franc c1875a
Miroslav Franc c1875a
Fixes: 73045a08cf55 ("s390: unify identity mapping limits handling")
Miroslav Franc c1875a
Reported-by: Alexander Gordeev <agordeev@linux.ibm.com>
Miroslav Franc c1875a
Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
Miroslav Franc c1875a
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Miroslav Franc c1875a
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Miroslav Franc c1875a
Acked-by: Miroslav Franc <mfranc@suse.cz>
Miroslav Franc c1875a
---
Miroslav Franc c1875a
 arch/s390/boot/mem_detect.c | 2 +-
Miroslav Franc c1875a
 1 file changed, 1 insertion(+), 1 deletion(-)
Miroslav Franc c1875a
Miroslav Franc c1875a
diff --git a/arch/s390/boot/mem_detect.c b/arch/s390/boot/mem_detect.c
Miroslav Franc c1875a
index 7fa1a32ea0f3..0a5821ef4f1f 100644
Miroslav Franc c1875a
--- a/arch/s390/boot/mem_detect.c
Miroslav Franc c1875a
+++ b/arch/s390/boot/mem_detect.c
Miroslav Franc c1875a
@@ -165,7 +165,7 @@ static void search_mem_end(void)
Miroslav Franc c1875a
 
Miroslav Franc c1875a
 unsigned long detect_memory(void)
Miroslav Franc c1875a
 {
Miroslav Franc c1875a
-	unsigned long max_physmem_end;
Miroslav Franc c1875a
+	unsigned long max_physmem_end = 0;
Miroslav Franc c1875a
 
Miroslav Franc c1875a
 	sclp_early_get_memsize(&max_physmem_end);
Miroslav Franc c1875a
 
Miroslav Franc c1875a