Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 35b03aec authored by Heiko Carstens's avatar Heiko Carstens Committed by Martin Schwidefsky
Browse files

s390/mem_detect: fix memory hole handling



With git commit 996b4a7d "s390/mem_detect: remove artificial kdump
memory types" the memory detection code got simplified.
As a side effect the array that describes memory chunks may now
contain empty (zeroed) entries.
All call sites can handle this except for

drivers/s390/char/zcore.c::zcore_memmap_open

which has a really odd user space interface. The easiest fix is to
change the memory hole handling code, so that no empty entries exist
before the last valid entry is reached.

Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 4026099a
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -123,7 +123,8 @@ void create_mem_hole(struct mem_chunk mem_chunk[], unsigned long addr,
			continue;
		} else if ((addr <= chunk->addr) &&
			   (addr + size >= chunk->addr + chunk->size)) {
			memset(chunk, 0 , sizeof(*chunk));
			memmove(chunk, chunk + 1, (MEMORY_CHUNKS-i-1) * sizeof(*chunk));
			memset(&mem_chunk[MEMORY_CHUNKS-1], 0, sizeof(*chunk));
		} else if (addr + size < chunk->addr + chunk->size) {
			chunk->size =  chunk->addr + chunk->size - addr - size;
			chunk->addr = addr + size;