aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKirill A. Shutemov <kirill.shutemov@linux.intel.com>2017-09-29 10:08:19 -0400
committerIngo Molnar <mingo@kernel.org>2017-10-20 07:07:10 -0400
commit4375c29985f155d7eb2346615d84e62d1b673682 (patch)
tree24324ee6c9f2830fda0ed74e3ad631affc4d33e6
parent12a8cc7fcf54a8575f094be1e99032ec38aa045c (diff)
x86/xen: Provide pre-built page tables only for CONFIG_XEN_PV=y and CONFIG_XEN_PVH=y
Looks like we only need pre-built page tables in the CONFIG_XEN_PV=y and CONFIG_XEN_PVH=y cases. Let's not provide them for other configurations. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Reviewed-by: Juergen Gross <jgross@suse.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Andy Lutomirski <luto@amacapital.net> Cc: Borislav Petkov <bp@suse.de> Cc: Cyrill Gorcunov <gorcunov@openvz.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/20170929140821.37654-5-kirill.shutemov@linux.intel.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r--arch/x86/kernel/head_64.S11
1 files changed, 6 insertions, 5 deletions
diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
index 513cbb012ecc..2be7d1e7fcf1 100644
--- a/arch/x86/kernel/head_64.S
+++ b/arch/x86/kernel/head_64.S
@@ -37,11 +37,12 @@
37 * 37 *
38 */ 38 */
39 39
40#define p4d_index(x) (((x) >> P4D_SHIFT) & (PTRS_PER_P4D-1))
41#define pud_index(x) (((x) >> PUD_SHIFT) & (PTRS_PER_PUD-1)) 40#define pud_index(x) (((x) >> PUD_SHIFT) & (PTRS_PER_PUD-1))
42 41
42#if defined(CONFIG_XEN_PV) || defined(CONFIG_XEN_PVH)
43PGD_PAGE_OFFSET = pgd_index(__PAGE_OFFSET_BASE) 43PGD_PAGE_OFFSET = pgd_index(__PAGE_OFFSET_BASE)
44PGD_START_KERNEL = pgd_index(__START_KERNEL_map) 44PGD_START_KERNEL = pgd_index(__START_KERNEL_map)
45#endif
45L3_START_KERNEL = pud_index(__START_KERNEL_map) 46L3_START_KERNEL = pud_index(__START_KERNEL_map)
46 47
47 .text 48 .text
@@ -361,10 +362,7 @@ NEXT_PAGE(early_dynamic_pgts)
361 362
362 .data 363 .data
363 364
364#ifndef CONFIG_XEN 365#if defined(CONFIG_XEN_PV) || defined(CONFIG_XEN_PVH)
365NEXT_PAGE(init_top_pgt)
366 .fill 512,8,0
367#else
368NEXT_PAGE(init_top_pgt) 366NEXT_PAGE(init_top_pgt)
369 .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE_NOENC 367 .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE_NOENC
370 .org init_top_pgt + PGD_PAGE_OFFSET*8, 0 368 .org init_top_pgt + PGD_PAGE_OFFSET*8, 0
@@ -381,6 +379,9 @@ NEXT_PAGE(level2_ident_pgt)
381 * Don't set NX because code runs from these pages. 379 * Don't set NX because code runs from these pages.
382 */ 380 */
383 PMDS(0, __PAGE_KERNEL_IDENT_LARGE_EXEC, PTRS_PER_PMD) 381 PMDS(0, __PAGE_KERNEL_IDENT_LARGE_EXEC, PTRS_PER_PMD)
382#else
383NEXT_PAGE(init_top_pgt)
384 .fill 512,8,0
384#endif 385#endif
385 386
386#ifdef CONFIG_X86_5LEVEL 387#ifdef CONFIG_X86_5LEVEL