diff options
Diffstat (limited to 'arch/s390/mm/mem_detect.c')
-rw-r--r-- | arch/s390/mm/mem_detect.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/s390/mm/mem_detect.c b/arch/s390/mm/mem_detect.c index 3cbd3b8bf311..cca388253a39 100644 --- a/arch/s390/mm/mem_detect.c +++ b/arch/s390/mm/mem_detect.c | |||
@@ -123,7 +123,8 @@ void create_mem_hole(struct mem_chunk mem_chunk[], unsigned long addr, | |||
123 | continue; | 123 | continue; |
124 | } else if ((addr <= chunk->addr) && | 124 | } else if ((addr <= chunk->addr) && |
125 | (addr + size >= chunk->addr + chunk->size)) { | 125 | (addr + size >= chunk->addr + chunk->size)) { |
126 | memset(chunk, 0 , sizeof(*chunk)); | 126 | memmove(chunk, chunk + 1, (MEMORY_CHUNKS-i-1) * sizeof(*chunk)); |
127 | memset(&mem_chunk[MEMORY_CHUNKS-1], 0, sizeof(*chunk)); | ||
127 | } else if (addr + size < chunk->addr + chunk->size) { | 128 | } else if (addr + size < chunk->addr + chunk->size) { |
128 | chunk->size = chunk->addr + chunk->size - addr - size; | 129 | chunk->size = chunk->addr + chunk->size - addr - size; |
129 | chunk->addr = addr + size; | 130 | chunk->addr = addr + size; |