s390/kdump,bootmem: fix bootmem allocator bitmap size
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Tue, 30 Apr 2013 07:36:23 +0000 (09:36 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 2 May 2013 13:50:25 +0000 (15:50 +0200)
commit67b5c3eeb4814bceb9a7e17fecb14ef59d511812
tree3981aae6bc83fcda686865c97c4d8b55faefdf7a
parent118131a2d588f4a0fb74d0f2aa7d339a03b2f64c
s390/kdump,bootmem: fix bootmem allocator bitmap size

When in kdump mode the kernel may access only the first couple of
megabytes for execution, the rest contains the dump. However
the size of the bitmap used by the bootmem allocator was calculated
for the whole amount of memory of the machine.

For very large machines this can lead to the situation that the kdump
kernel will not come up because not enough memory is available.

So fix this and calculate the size of the bitmap only for the piece
of memory that the kdump kernel actually uses.

Call reserve_oldmem() before setup_memory_end() so that the memory_chunk
array already has been updated with respect to oldmem chunks.
Afterwards setup_memory_end() will ignore those chunks.

Reviewed-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/setup.c