|
@@ -512,11 +512,18 @@ ENTRY(initial_code)
|
|
|
ENTRY(setup_once_ref)
|
|
|
.long setup_once
|
|
|
|
|
|
+#ifdef CONFIG_PAGE_TABLE_ISOLATION
|
|
|
+#define PGD_ALIGN (2 * PAGE_SIZE)
|
|
|
+#define PTI_USER_PGD_FILL 1024
|
|
|
+#else
|
|
|
+#define PGD_ALIGN (PAGE_SIZE)
|
|
|
+#define PTI_USER_PGD_FILL 0
|
|
|
+#endif
|
|
|
/*
|
|
|
* BSS section
|
|
|
*/
|
|
|
__PAGE_ALIGNED_BSS
|
|
|
- .align PAGE_SIZE
|
|
|
+ .align PGD_ALIGN
|
|
|
#ifdef CONFIG_X86_PAE
|
|
|
.globl initial_pg_pmd
|
|
|
initial_pg_pmd:
|
|
@@ -526,14 +533,17 @@ initial_pg_pmd:
|
|
|
initial_page_table:
|
|
|
.fill 1024,4,0
|
|
|
#endif
|
|
|
+ .align PGD_ALIGN
|
|
|
initial_pg_fixmap:
|
|
|
.fill 1024,4,0
|
|
|
-.globl empty_zero_page
|
|
|
-empty_zero_page:
|
|
|
- .fill 4096,1,0
|
|
|
.globl swapper_pg_dir
|
|
|
+ .align PGD_ALIGN
|
|
|
swapper_pg_dir:
|
|
|
.fill 1024,4,0
|
|
|
+ .fill PTI_USER_PGD_FILL,4,0
|
|
|
+.globl empty_zero_page
|
|
|
+empty_zero_page:
|
|
|
+ .fill 4096,1,0
|
|
|
EXPORT_SYMBOL(empty_zero_page)
|
|
|
|
|
|
/*
|
|
@@ -542,7 +552,7 @@ EXPORT_SYMBOL(empty_zero_page)
|
|
|
#ifdef CONFIG_X86_PAE
|
|
|
__PAGE_ALIGNED_DATA
|
|
|
/* Page-aligned for the benefit of paravirt? */
|
|
|
- .align PAGE_SIZE
|
|
|
+ .align PGD_ALIGN
|
|
|
ENTRY(initial_page_table)
|
|
|
.long pa(initial_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */
|
|
|
# if KPMDS == 3
|