s390/mem_detect: rely on diag260() if sclp_early_get_memsize() fails
authorVasily Gorbik <gor@linux.ibm.com>
Fri, 27 Jan 2023 13:57:43 +0000 (14:57 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Mon, 6 Feb 2023 10:13:54 +0000 (11:13 +0100)
In case sclp_early_get_memsize() fails but diag260() succeeds make sure
some sane value is returned. This error scenario is highly unlikely,
but this change makes system able to boot in such case.

Suggested-by: Alexander Gordeev <agordeev@linux.ibm.com>
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>
arch/s390/boot/mem_detect.c

index 0a5821ef4f1fd74390fbbebef5540d59c1f069a5..41792a3a5e36468c5ceec276dcdd908de8356827 100644 (file)
@@ -176,7 +176,7 @@ unsigned long detect_memory(void)
 
        if (!diag260()) {
                mem_detect.info_source = MEM_DETECT_DIAG260;
-               return max_physmem_end;
+               return max_physmem_end ?: get_mem_detect_end();
        }
 
        if (max_physmem_end) {