aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/s390/kernel/setup.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index f1e0ba5a5c3a..555f1895972e 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -527,6 +527,8 @@ static void __init setup_memory_end(void)
527 unsigned long align; 527 unsigned long align;
528 528
529 chunk = &memory_chunk[i]; 529 chunk = &memory_chunk[i];
530 if (chunk->type == CHUNK_OLDMEM)
531 continue;
530 align = 1UL << (MAX_ORDER + PAGE_SHIFT - 1); 532 align = 1UL << (MAX_ORDER + PAGE_SHIFT - 1);
531 start = (chunk->addr + align - 1) & ~(align - 1); 533 start = (chunk->addr + align - 1) & ~(align - 1);
532 end = (chunk->addr + chunk->size) & ~(align - 1); 534 end = (chunk->addr + chunk->size) & ~(align - 1);
@@ -577,6 +579,8 @@ static void __init setup_memory_end(void)
577 for (i = 0; i < MEMORY_CHUNKS; i++) { 579 for (i = 0; i < MEMORY_CHUNKS; i++) {
578 struct mem_chunk *chunk = &memory_chunk[i]; 580 struct mem_chunk *chunk = &memory_chunk[i];
579 581
582 if (chunk->type == CHUNK_OLDMEM)
583 continue;
580 if (chunk->addr >= memory_end) { 584 if (chunk->addr >= memory_end) {
581 memset(chunk, 0, sizeof(*chunk)); 585 memset(chunk, 0, sizeof(*chunk));
582 continue; 586 continue;
@@ -1065,9 +1069,9 @@ void __init setup_arch(char **cmdline_p)
1065 1069
1066 os_info_init(); 1070 os_info_init();
1067 setup_ipl(); 1071 setup_ipl();
1072 reserve_oldmem();
1068 setup_memory_end(); 1073 setup_memory_end();
1069 setup_addressing_mode(); 1074 setup_addressing_mode();
1070 reserve_oldmem();
1071 reserve_crashkernel(); 1075 reserve_crashkernel();
1072 setup_memory(); 1076 setup_memory();
1073 setup_resources(); 1077 setup_resources();