File tree 12 files changed +38
-60
lines changed 12 files changed +38
-60
lines changed Original file line number Diff line number Diff line change @@ -243,21 +243,17 @@ callback_init(void * kernel_end)
243
243
*/
244
244
void __init paging_init (void )
245
245
{
246
- unsigned long zones_size [MAX_NR_ZONES ] = {0 , };
247
- unsigned long dma_pfn , high_pfn ;
246
+ unsigned long max_zone_pfn [MAX_NR_ZONES ] = {0 , };
247
+ unsigned long dma_pfn ;
248
248
249
249
dma_pfn = virt_to_phys ((char * )MAX_DMA_ADDRESS ) >> PAGE_SHIFT ;
250
- high_pfn = max_pfn = max_low_pfn ;
250
+ max_pfn = max_low_pfn ;
251
251
252
- if (dma_pfn >= high_pfn )
253
- zones_size [ZONE_DMA ] = high_pfn ;
254
- else {
255
- zones_size [ZONE_DMA ] = dma_pfn ;
256
- zones_size [ZONE_NORMAL ] = high_pfn - dma_pfn ;
257
- }
252
+ max_zone_pfn [ZONE_DMA ] = dma_pfn ;
253
+ max_zone_pfn [ZONE_NORMAL ] = max_pfn ;
258
254
259
255
/* Initialize mem_map[]. */
260
- free_area_init (zones_size );
256
+ free_area_init (max_zone_pfn );
261
257
262
258
/* Initialize the kernel's ZERO_PGE. */
263
259
memset ((void * )ZERO_PGE , 0 , PAGE_SIZE );
Original file line number Diff line number Diff line change @@ -33,7 +33,7 @@ EXPORT_SYMBOL(empty_zero_page);
33
33
void __init paging_init (void )
34
34
{
35
35
struct pglist_data * pgdat = NODE_DATA (0 );
36
- unsigned long zones_size [MAX_NR_ZONES ] = {0 , };
36
+ unsigned long max_zone_pfn [MAX_NR_ZONES ] = {0 , };
37
37
38
38
empty_zero_page = (unsigned long ) memblock_alloc (PAGE_SIZE ,
39
39
PAGE_SIZE );
@@ -49,11 +49,9 @@ void __init paging_init(void)
49
49
/*
50
50
* Define zones
51
51
*/
52
- zones_size [ZONE_NORMAL ] = (memory_end - PAGE_OFFSET ) >> PAGE_SHIFT ;
53
- pgdat -> node_zones [ZONE_NORMAL ].zone_start_pfn =
54
- __pa (PAGE_OFFSET ) >> PAGE_SHIFT ;
52
+ max_zone_pfn [ZONE_NORMAL ] = memory_end >> PAGE_SHIFT ;
55
53
56
- free_area_init (zones_size );
54
+ free_area_init (max_zone_pfn );
57
55
}
58
56
59
57
void __init mem_init (void )
Original file line number Diff line number Diff line change @@ -83,10 +83,10 @@ void __init paging_init(void)
83
83
start_mem , end_mem );
84
84
85
85
{
86
- unsigned long zones_size [MAX_NR_ZONES ] = {0 , };
86
+ unsigned long max_zone_pfn [MAX_NR_ZONES ] = {0 , };
87
87
88
- zones_size [ZONE_NORMAL ] = ( end_mem - PAGE_OFFSET ) >> PAGE_SHIFT ;
89
- free_area_init (zones_size );
88
+ max_zone_pfn [ZONE_NORMAL ] = end_mem >> PAGE_SHIFT ;
89
+ free_area_init (max_zone_pfn );
90
90
}
91
91
}
92
92
Original file line number Diff line number Diff line change @@ -91,7 +91,7 @@ void sync_icache_dcache(pte_t pte)
91
91
*/
92
92
void __init paging_init (void )
93
93
{
94
- unsigned long zones_sizes [MAX_NR_ZONES ] = {0 , };
94
+ unsigned long max_zone_pfn [MAX_NR_ZONES ] = {0 , };
95
95
96
96
/*
97
97
* This is not particularly well documented anywhere, but
@@ -101,9 +101,9 @@ void __init paging_init(void)
101
101
* adjust accordingly.
102
102
*/
103
103
104
- zones_sizes [ZONE_NORMAL ] = max_low_pfn ;
104
+ max_zone_pfn [ZONE_NORMAL ] = max_low_pfn ;
105
105
106
- free_area_init (zones_sizes ); /* sets up the zonelists and mem_map */
106
+ free_area_init (max_zone_pfn ); /* sets up the zonelists and mem_map */
107
107
108
108
/*
109
109
* Start of high memory area. Will probably need something more
Original file line number Diff line number Diff line change @@ -84,7 +84,7 @@ void __init paging_init(void)
84
84
* page_alloc get different views of the world.
85
85
*/
86
86
unsigned long end_mem = memory_end & PAGE_MASK ;
87
- unsigned long zones_size [MAX_NR_ZONES ] = { 0 , };
87
+ unsigned long max_zone_pfn [MAX_NR_ZONES ] = { 0 , };
88
88
89
89
high_memory = (void * ) end_mem ;
90
90
@@ -98,8 +98,8 @@ void __init paging_init(void)
98
98
*/
99
99
set_fs (USER_DS );
100
100
101
- zones_size [ZONE_DMA ] = ( end_mem - PAGE_OFFSET ) >> PAGE_SHIFT ;
102
- free_area_init (zones_size );
101
+ max_zone_pfn [ZONE_DMA ] = end_mem >> PAGE_SHIFT ;
102
+ free_area_init (max_zone_pfn );
103
103
}
104
104
105
105
#endif /* CONFIG_MMU */
Original file line number Diff line number Diff line change @@ -39,7 +39,7 @@ void __init paging_init(void)
39
39
pte_t * pg_table ;
40
40
unsigned long address , size ;
41
41
unsigned long next_pgtable , bootmem_end ;
42
- unsigned long zones_size [MAX_NR_ZONES ];
42
+ unsigned long max_zone_pfn [MAX_NR_ZONES ] = { 0 } ;
43
43
enum zone_type zone ;
44
44
int i ;
45
45
@@ -80,11 +80,8 @@ void __init paging_init(void)
80
80
}
81
81
82
82
current -> mm = NULL ;
83
-
84
- for (zone = 0 ; zone < MAX_NR_ZONES ; zone ++ )
85
- zones_size [zone ] = 0x0 ;
86
- zones_size [ZONE_DMA ] = num_pages ;
87
- free_area_init (zones_size );
83
+ max_zone_pfn [ZONE_DMA ] = PFN_DOWN (_ramend );
84
+ free_area_init (max_zone_pfn );
88
85
}
89
86
90
87
int cf_tlb_miss (struct pt_regs * regs , int write , int dtlb , int extension_word )
Original file line number Diff line number Diff line change @@ -31,16 +31,13 @@ EXPORT_SYMBOL(empty_zero_page);
31
31
32
32
static void __init zone_sizes_init (void )
33
33
{
34
- unsigned long zones_size [MAX_NR_ZONES ];
34
+ unsigned long max_zone_pfn [MAX_NR_ZONES ] = { 0 } ;
35
35
36
- /* Clear the zone sizes */
37
- memset (zones_size , 0 , sizeof (zones_size ));
38
-
39
- zones_size [ZONE_NORMAL ] = max_low_pfn ;
36
+ max_zone_pfn [ZONE_NORMAL ] = max_low_pfn ;
40
37
#ifdef CONFIG_HIGHMEM
41
- zones_size [ZONE_HIGHMEM ] = max_pfn ;
38
+ max_zone_pfn [ZONE_HIGHMEM ] = max_pfn ;
42
39
#endif
43
- free_area_init (zones_size );
40
+ free_area_init (max_zone_pfn );
44
41
45
42
}
46
43
Original file line number Diff line number Diff line change @@ -46,17 +46,15 @@ pgd_t *pgd_current;
46
46
*/
47
47
void __init paging_init (void )
48
48
{
49
- unsigned long zones_size [MAX_NR_ZONES ];
50
-
51
- memset (zones_size , 0 , sizeof (zones_size ));
49
+ unsigned long max_zone_pfn [MAX_NR_ZONES ] = { 0 };
52
50
53
51
pagetable_init ();
54
52
pgd_current = swapper_pg_dir ;
55
53
56
- zones_size [ZONE_NORMAL ] = max_mapnr ;
54
+ max_zone_pfn [ZONE_NORMAL ] = max_mapnr ;
57
55
58
56
/* pass the memory from the bootmem allocator to the main allocator */
59
- free_area_init (zones_size );
57
+ free_area_init (max_zone_pfn );
60
58
61
59
flush_dcache_range ((unsigned long )empty_zero_page ,
62
60
(unsigned long )empty_zero_page + PAGE_SIZE );
Original file line number Diff line number Diff line change @@ -45,17 +45,14 @@ DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
45
45
46
46
static void __init zone_sizes_init (void )
47
47
{
48
- unsigned long zones_size [MAX_NR_ZONES ];
49
-
50
- /* Clear the zone sizes */
51
- memset (zones_size , 0 , sizeof (zones_size ));
48
+ unsigned long max_zone_pfn [MAX_NR_ZONES ] = { 0 };
52
49
53
50
/*
54
51
* We use only ZONE_NORMAL
55
52
*/
56
- zones_size [ZONE_NORMAL ] = max_low_pfn ;
53
+ max_zone_pfn [ZONE_NORMAL ] = max_low_pfn ;
57
54
58
- free_area_init (zones_size );
55
+ free_area_init (max_zone_pfn );
59
56
}
60
57
61
58
extern const char _s_kernel_ro [], _e_kernel_ro [];
Original file line number Diff line number Diff line change @@ -158,21 +158,17 @@ static void __init fixaddr_user_init( void)
158
158
159
159
void __init paging_init (void )
160
160
{
161
- unsigned long zones_size [MAX_NR_ZONES ], vaddr ;
162
- int i ;
161
+ unsigned long max_zone_pfn [MAX_NR_ZONES ] = { 0 } ;
162
+ unsigned long vaddr ;
163
163
164
164
empty_zero_page = (unsigned long * ) memblock_alloc_low (PAGE_SIZE ,
165
165
PAGE_SIZE );
166
166
if (!empty_zero_page )
167
167
panic ("%s: Failed to allocate %lu bytes align=%lx\n" ,
168
168
__func__ , PAGE_SIZE , PAGE_SIZE );
169
169
170
- for (i = 0 ; i < ARRAY_SIZE (zones_size ); i ++ )
171
- zones_size [i ] = 0 ;
172
-
173
- zones_size [ZONE_NORMAL ] = (end_iomem >> PAGE_SHIFT ) -
174
- (uml_physmem >> PAGE_SHIFT );
175
- free_area_init (zones_size );
170
+ max_zone_pfn [ZONE_NORMAL ] = end_iomem >> PAGE_SHIFT ;
171
+ free_area_init (max_zone_pfn );
176
172
177
173
/*
178
174
* Fixed mappings, only the page table structure has to be
Original file line number Diff line number Diff line change @@ -2329,7 +2329,7 @@ static inline spinlock_t *pud_lock(struct mm_struct *mm, pud_t *pud)
2329
2329
}
2330
2330
2331
2331
extern void __init pagecache_init (void );
2332
- extern void free_area_init (unsigned long * zones_size );
2332
+ extern void free_area_init (unsigned long * max_zone_pfn );
2333
2333
extern void __init free_area_init_node (int nid , unsigned long * zones_size ,
2334
2334
unsigned long zone_start_pfn , unsigned long * zholes_size );
2335
2335
extern void free_initmem (void );
Original file line number Diff line number Diff line change @@ -7712,11 +7712,10 @@ void __init set_dma_reserve(unsigned long new_dma_reserve)
7712
7712
dma_reserve = new_dma_reserve ;
7713
7713
}
7714
7714
7715
- void __init free_area_init (unsigned long * zones_size )
7715
+ void __init free_area_init (unsigned long * max_zone_pfn )
7716
7716
{
7717
7717
init_unavailable_mem ();
7718
- free_area_init_node (0 , zones_size ,
7719
- __pa (PAGE_OFFSET ) >> PAGE_SHIFT , NULL );
7718
+ free_area_init_nodes (max_zone_pfn );
7720
7719
}
7721
7720
7722
7721
static int page_alloc_cpu_dead (unsigned int cpu )
You can’t perform that action at this time.
0 commit comments