s390/kexec: fix crash on resize of reserved memory
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Tue, 31 May 2016 07:14:00 +0000 (09:14 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 13 Jun 2016 13:58:19 +0000 (15:58 +0200)
commit4e042af463f806b6ef0e44048eba0964f0a5694e
tree4bd3cfb12176ee1697ee2c376164eaf28b8d23bf
parent2d0af2247906cf17cd641cdb16444a8f291cd4f4
s390/kexec: fix crash on resize of reserved memory

Reducing the size of reserved memory for the crash kernel will result
in an immediate crash on s390. Reason for that is that we do not
create struct pages for memory that is reserved. If that memory is
freed any access to struct pages which correspond to this memory will
result in invalid memory accesses and a kernel panic.

Fix this by properly creating struct pages when the system gets
initialized. Change the code also to make use of set_memory_ro() and
set_memory_rw() so page tables will be split if required.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/machine_kexec.c
arch/s390/kernel/setup.c