summaryrefslogtreecommitdiff
path: root/arch/x86/include/asm/kexec.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/include/asm/kexec.h')
-rw-r--r--arch/x86/include/asm/kexec.h18
1 files changed, 4 insertions, 14 deletions
diff --git a/arch/x86/include/asm/kexec.h b/arch/x86/include/asm/kexec.h
index e2e1ec99c999..256eee99afc8 100644
--- a/arch/x86/include/asm/kexec.h
+++ b/arch/x86/include/asm/kexec.h
@@ -16,7 +16,6 @@
# define PAGES_NR 4
#endif
-# define KEXEC_CONTROL_PAGE_SIZE 4096
# define KEXEC_CONTROL_CODE_MAX_SIZE 2048
#ifndef __ASSEMBLY__
@@ -45,6 +44,7 @@ struct kimage;
/* Maximum address we can use for the control code buffer */
# define KEXEC_CONTROL_MEMORY_LIMIT TASK_SIZE
+# define KEXEC_CONTROL_PAGE_SIZE 4096
/* The native architecture */
# define KEXEC_ARCH KEXEC_ARCH_386
@@ -59,6 +59,9 @@ struct kimage;
/* Maximum address we can use for the control pages */
# define KEXEC_CONTROL_MEMORY_LIMIT (MAXMEM-1)
+/* Allocate one page for the pdp and the second for the code */
+# define KEXEC_CONTROL_PAGE_SIZE (4096UL + 4096UL)
+
/* The native architecture */
# define KEXEC_ARCH KEXEC_ARCH_X86_64
#endif
@@ -143,19 +146,6 @@ struct kimage_arch {
};
#else
struct kimage_arch {
- /*
- * This is a kimage control page, as it must not overlap with either
- * source or destination address ranges.
- */
- pgd_t *pgd;
- /*
- * The virtual mapping of the control code page itself is used only
- * during the transition, while the current kernel's pages are all
- * in place. Thus the intermediate page table pages used to map it
- * are not control pages, but instead just normal pages obtained
- * with get_zeroed_page(). And have to be tracked (below) so that
- * they can be freed.
- */
p4d_t *p4d;
pud_t *pud;
pmd_t *pmd;