diff options
-rw-r--r-- | arch/s390/kernel/setup.c | 6 |
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(); |