|
@@ -49,7 +49,7 @@ u64 idmap_t0sz = TCR_T0SZ(VA_BITS);
|
|
* Empty_zero_page is a special page that is used for zero-initialized data
|
|
* Empty_zero_page is a special page that is used for zero-initialized data
|
|
* and COW.
|
|
* and COW.
|
|
*/
|
|
*/
|
|
-struct page *empty_zero_page;
|
|
|
|
|
|
+unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)] __page_aligned_bss;
|
|
EXPORT_SYMBOL(empty_zero_page);
|
|
EXPORT_SYMBOL(empty_zero_page);
|
|
|
|
|
|
pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
|
|
pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
|
|
@@ -459,18 +459,11 @@ void fixup_init(void)
|
|
*/
|
|
*/
|
|
void __init paging_init(void)
|
|
void __init paging_init(void)
|
|
{
|
|
{
|
|
- void *zero_page;
|
|
|
|
-
|
|
|
|
map_mem();
|
|
map_mem();
|
|
fixup_executable();
|
|
fixup_executable();
|
|
|
|
|
|
- /* allocate the zero page. */
|
|
|
|
- zero_page = early_pgtable_alloc();
|
|
|
|
-
|
|
|
|
bootmem_init();
|
|
bootmem_init();
|
|
|
|
|
|
- empty_zero_page = virt_to_page(zero_page);
|
|
|
|
-
|
|
|
|
/*
|
|
/*
|
|
* TTBR0 is only used for the identity mapping at this stage. Make it
|
|
* TTBR0 is only used for the identity mapping at this stage. Make it
|
|
* point to zero page to avoid speculatively fetching new entries.
|
|
* point to zero page to avoid speculatively fetching new entries.
|