summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/s390/boot/mem_detect.c9
-rw-r--r--arch/s390/include/asm/mem_detect.h1
2 files changed, 8 insertions, 2 deletions
diff --git a/arch/s390/boot/mem_detect.c b/arch/s390/boot/mem_detect.c
index 42b0cd23f04a..3becf6bbe4c7 100644
--- a/arch/s390/boot/mem_detect.c
+++ b/arch/s390/boot/mem_detect.c
@@ -184,8 +184,13 @@ void detect_memory(void)
return;
}
+ if (max_physmem_end) {
+ add_mem_detect_block(0, max_physmem_end);
+ mem_detect.info_source = MEM_DETECT_SCLP_READ_INFO;
+ return;
+ }
+
scan_memory(rzm);
mem_detect.info_source = MEM_DETECT_TPROT_LOOP;
- if (!max_physmem_end)
- max_physmem_end = get_mem_detect_end();
+ max_physmem_end = get_mem_detect_end();
}
diff --git a/arch/s390/include/asm/mem_detect.h b/arch/s390/include/asm/mem_detect.h
index 6047a28656f5..153c3542fa8a 100644
--- a/arch/s390/include/asm/mem_detect.h
+++ b/arch/s390/include/asm/mem_detect.h
@@ -8,6 +8,7 @@ enum mem_info_source {
MEM_DETECT_NONE = 0,
MEM_DETECT_SCLP_STOR_INFO,
MEM_DETECT_DIAG260,
+ MEM_DETECT_SCLP_READ_INFO,
MEM_DETECT_TPROT_LOOP
};