|
@@ -56,7 +56,7 @@ static void load_segments(void)
|
|
|
|
|
|
static void machine_kexec_free_page_tables(struct kimage *image)
|
|
|
{
|
|
|
- free_page((unsigned long)image->arch.pgd);
|
|
|
+ free_pages((unsigned long)image->arch.pgd, PGD_ALLOCATION_ORDER);
|
|
|
image->arch.pgd = NULL;
|
|
|
#ifdef CONFIG_X86_PAE
|
|
|
free_page((unsigned long)image->arch.pmd0);
|
|
@@ -72,7 +72,8 @@ static void machine_kexec_free_page_tables(struct kimage *image)
|
|
|
|
|
|
static int machine_kexec_alloc_page_tables(struct kimage *image)
|
|
|
{
|
|
|
- image->arch.pgd = (pgd_t *)get_zeroed_page(GFP_KERNEL);
|
|
|
+ image->arch.pgd = (pgd_t *)__get_free_pages(GFP_KERNEL | __GFP_ZERO,
|
|
|
+ PGD_ALLOCATION_ORDER);
|
|
|
#ifdef CONFIG_X86_PAE
|
|
|
image->arch.pmd0 = (pmd_t *)get_zeroed_page(GFP_KERNEL);
|
|
|
image->arch.pmd1 = (pmd_t *)get_zeroed_page(GFP_KERNEL);
|