@@ -84,109 +84,6 @@ void __init mem_init(void)
8484 kmalloc_ok = 1 ;
8585}
8686
87- #if IS_ENABLED (CONFIG_ARCH_REUSE_HOST_VSYSCALL_AREA )
88- /*
89- * Create a page table and place a pointer to it in a middle page
90- * directory entry.
91- */
92- static void __init one_page_table_init (pmd_t * pmd )
93- {
94- if (pmd_none (* pmd )) {
95- pte_t * pte = (pte_t * ) memblock_alloc_low (PAGE_SIZE ,
96- PAGE_SIZE );
97- if (!pte )
98- panic ("%s: Failed to allocate %lu bytes align=%lx\n" ,
99- __func__ , PAGE_SIZE , PAGE_SIZE );
100-
101- set_pmd (pmd , __pmd (_KERNPG_TABLE +
102- (unsigned long ) __pa (pte )));
103- BUG_ON (pte != pte_offset_kernel (pmd , 0 ));
104- }
105- }
106-
107- static void __init one_md_table_init (pud_t * pud )
108- {
109- #if CONFIG_PGTABLE_LEVELS > 2
110- pmd_t * pmd_table = (pmd_t * ) memblock_alloc_low (PAGE_SIZE , PAGE_SIZE );
111- if (!pmd_table )
112- panic ("%s: Failed to allocate %lu bytes align=%lx\n" ,
113- __func__ , PAGE_SIZE , PAGE_SIZE );
114-
115- set_pud (pud , __pud (_KERNPG_TABLE + (unsigned long ) __pa (pmd_table )));
116- BUG_ON (pmd_table != pmd_offset (pud , 0 ));
117- #endif
118- }
119-
120- static void __init one_ud_table_init (p4d_t * p4d )
121- {
122- #if CONFIG_PGTABLE_LEVELS > 3
123- pud_t * pud_table = (pud_t * ) memblock_alloc_low (PAGE_SIZE , PAGE_SIZE );
124- if (!pud_table )
125- panic ("%s: Failed to allocate %lu bytes align=%lx\n" ,
126- __func__ , PAGE_SIZE , PAGE_SIZE );
127-
128- set_p4d (p4d , __p4d (_KERNPG_TABLE + (unsigned long ) __pa (pud_table )));
129- BUG_ON (pud_table != pud_offset (p4d , 0 ));
130- #endif
131- }
132-
133- static void __init fixrange_init (unsigned long start , unsigned long end ,
134- pgd_t * pgd_base )
135- {
136- pgd_t * pgd ;
137- p4d_t * p4d ;
138- pud_t * pud ;
139- pmd_t * pmd ;
140- int i , j ;
141- unsigned long vaddr ;
142-
143- vaddr = start ;
144- i = pgd_index (vaddr );
145- j = pmd_index (vaddr );
146- pgd = pgd_base + i ;
147-
148- for ( ; (i < PTRS_PER_PGD ) && (vaddr < end ); pgd ++ , i ++ ) {
149- p4d = p4d_offset (pgd , vaddr );
150- if (p4d_none (* p4d ))
151- one_ud_table_init (p4d );
152- pud = pud_offset (p4d , vaddr );
153- if (pud_none (* pud ))
154- one_md_table_init (pud );
155- pmd = pmd_offset (pud , vaddr );
156- for (; (j < PTRS_PER_PMD ) && (vaddr < end ); pmd ++ , j ++ ) {
157- one_page_table_init (pmd );
158- vaddr += PMD_SIZE ;
159- }
160- j = 0 ;
161- }
162- }
163-
164- static void __init fixaddr_user_init ( void )
165- {
166- long size = FIXADDR_USER_END - FIXADDR_USER_START ;
167- pte_t * pte ;
168- phys_t p ;
169- unsigned long v , vaddr = FIXADDR_USER_START ;
170-
171- if (!size )
172- return ;
173-
174- fixrange_init ( FIXADDR_USER_START , FIXADDR_USER_END , swapper_pg_dir );
175- v = (unsigned long ) memblock_alloc_low (size , PAGE_SIZE );
176- if (!v )
177- panic ("%s: Failed to allocate %lu bytes align=%lx\n" ,
178- __func__ , size , PAGE_SIZE );
179-
180- memcpy ((void * ) v , (void * ) FIXADDR_USER_START , size );
181- p = __pa (v );
182- for ( ; size > 0 ; size -= PAGE_SIZE , vaddr += PAGE_SIZE ,
183- p += PAGE_SIZE ) {
184- pte = virt_to_kpte (vaddr );
185- pte_set_val (* pte , p , PAGE_READONLY );
186- }
187- }
188- #endif
189-
19087void __init paging_init (void )
19188{
19289 unsigned long max_zone_pfn [MAX_NR_ZONES ] = { 0 };
@@ -199,10 +96,6 @@ void __init paging_init(void)
19996
20097 max_zone_pfn [ZONE_NORMAL ] = high_physmem >> PAGE_SHIFT ;
20198 free_area_init (max_zone_pfn );
202-
203- #if IS_ENABLED (CONFIG_ARCH_REUSE_HOST_VSYSCALL_AREA )
204- fixaddr_user_init ();
205- #endif
20699}
207100
208101/*
0 commit comments