[S390] Add architecture code for unmapping crashkernel memory

This patch implements the crash_map_pages() function for s390.
KEXEC_CRASH_MEM_ALIGN is set to HPAGE_SIZE, in order to support
kernel mappings that use large pages. We also use HPAGE_SIZE alignment
for CONFIG_HUGETLB_PAGE=n in order to have the same 1 MiB alignment on
all s390 systems.

Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
Michael Holzheu 2011-10-30 15:16:44 +01:00 committed by Martin Schwidefsky
parent 558df7209e
commit dab7a7b153
3 changed files with 40 additions and 4 deletions

View file

@ -132,6 +132,37 @@ static int kdump_csum_valid(struct kimage *image)
#endif
}
/*
* Map or unmap crashkernel memory
*/
static void crash_map_pages(int enable)
{
unsigned long size = resource_size(&crashk_res);
BUG_ON(crashk_res.start % KEXEC_CRASH_MEM_ALIGN ||
size % KEXEC_CRASH_MEM_ALIGN);
if (enable)
vmem_add_mapping(crashk_res.start, size);
else
vmem_remove_mapping(crashk_res.start, size);
}
/*
* Map crashkernel memory
*/
void crash_map_reserved_pages(void)
{
crash_map_pages(1);
}
/*
* Unmap crashkernel memory
*/
void crash_unmap_reserved_pages(void)
{
crash_map_pages(0);
}
/*
* Give back memory to hypervisor before new kdump is loaded
*/