File tree Expand file tree Collapse file tree 36 files changed +50
-46
lines changed Expand file tree Collapse file tree 36 files changed +50
-46
lines changed Original file line number Diff line number Diff line change @@ -309,7 +309,7 @@ void __init
309
309
mem_init (void )
310
310
{
311
311
max_mapnr = num_physpages = max_low_pfn ;
312
- totalram_pages += free_all_bootmem ();
312
+ free_all_bootmem ();
313
313
high_memory = (void * ) __va (max_low_pfn * PAGE_SIZE );
314
314
315
315
printk_memory_info ();
Original file line number Diff line number Diff line change @@ -334,7 +334,7 @@ void __init mem_init(void)
334
334
/*
335
335
* This will free up the bootmem, ie, slot 0 memory
336
336
*/
337
- totalram_pages += free_all_bootmem_node (NODE_DATA (nid ));
337
+ free_all_bootmem_node (NODE_DATA (nid ));
338
338
339
339
pfn = NODE_DATA (nid )-> node_start_pfn ;
340
340
for (i = 0 ; i < node_spanned_pages (nid ); i ++ , pfn ++ )
Original file line number Diff line number Diff line change @@ -111,7 +111,7 @@ void __init mem_init(void)
111
111
112
112
high_memory = (void * )(CONFIG_LINUX_LINK_BASE + arc_mem_sz );
113
113
114
- totalram_pages = free_all_bootmem ();
114
+ free_all_bootmem ();
115
115
116
116
/* count all reserved pages [kernel code/data/mem_map..] */
117
117
reserved_pages = 0 ;
Original file line number Diff line number Diff line change @@ -596,8 +596,7 @@ void __init mem_init(void)
596
596
597
597
/* this will put all unused low memory onto the freelists */
598
598
free_unused_memmap (& meminfo );
599
-
600
- totalram_pages += free_all_bootmem ();
599
+ free_all_bootmem ();
601
600
602
601
#ifdef CONFIG_SA1111
603
602
/* now that our DMA memory is actually so designated, we can free it */
Original file line number Diff line number Diff line change @@ -284,7 +284,7 @@ void __init mem_init(void)
284
284
free_unused_memmap ();
285
285
#endif
286
286
287
- totalram_pages += free_all_bootmem ();
287
+ free_all_bootmem ();
288
288
289
289
reserved_pages = free_pages = 0 ;
290
290
Original file line number Diff line number Diff line change @@ -117,8 +117,6 @@ void __init mem_init(void)
117
117
if (pgdat -> node_spanned_pages != 0 )
118
118
node_pages = free_all_bootmem_node (pgdat );
119
119
120
- totalram_pages += node_pages ;
121
-
122
120
for (i = 0 ; i < node_pages ; i ++ )
123
121
if (PageReserved (pgdat -> node_mem_map + i ))
124
122
reservedpages ++ ;
Original file line number Diff line number Diff line change @@ -104,7 +104,7 @@ void __init mem_init(void)
104
104
printk (KERN_DEBUG "Kernel managed physical pages: %lu\n" , num_physpages );
105
105
106
106
/* This will put all low memory onto the freelists. */
107
- totalram_pages = free_all_bootmem ();
107
+ free_all_bootmem ();
108
108
109
109
reservedpages = 0 ;
110
110
for (tmp = ARCH_PFN_OFFSET ; tmp < max_mapnr ; tmp ++ )
Original file line number Diff line number Diff line change @@ -65,7 +65,7 @@ void __init mem_init(void)
65
65
high_memory = (void * )(memory_end & PAGE_MASK );
66
66
67
67
/* this will put all memory onto the freelists */
68
- totalram_pages = free_all_bootmem ();
68
+ free_all_bootmem ();
69
69
70
70
codek = (_etext - _stext ) >> 10 ;
71
71
datak = (_end - _sdata ) >> 10 ;
Original file line number Diff line number Diff line change @@ -33,7 +33,7 @@ mem_init(void)
33
33
max_mapnr = num_physpages = max_low_pfn - min_low_pfn ;
34
34
35
35
/* this will put all memory onto the freelists */
36
- totalram_pages = free_all_bootmem ();
36
+ free_all_bootmem ();
37
37
38
38
reservedpages = 0 ;
39
39
for (tmp = 0 ; tmp < max_mapnr ; tmp ++ ) {
Original file line number Diff line number Diff line change @@ -123,7 +123,7 @@ void __init mem_init(void)
123
123
int codek = 0 , datak = 0 ;
124
124
125
125
/* this will put all low memory onto the freelists */
126
- totalram_pages = free_all_bootmem ();
126
+ free_all_bootmem ();
127
127
128
128
#ifdef CONFIG_MMU
129
129
for (loop = 0 ; loop < npages ; loop ++ )
Original file line number Diff line number Diff line change @@ -140,7 +140,7 @@ void __init mem_init(void)
140
140
max_mapnr = num_physpages = MAP_NR (high_memory );
141
141
142
142
/* this will put all low memory onto the freelists */
143
- totalram_pages = free_all_bootmem ();
143
+ free_all_bootmem ();
144
144
145
145
codek = (_etext - _stext ) >> 10 ;
146
146
datak = (__bss_stop - _sdata ) >> 10 ;
Original file line number Diff line number Diff line change @@ -70,7 +70,7 @@ unsigned long long kmap_generation;
70
70
void __init mem_init (void )
71
71
{
72
72
/* No idea where this is actually declared. Seems to evade LXR. */
73
- totalram_pages += free_all_bootmem ();
73
+ free_all_bootmem ();
74
74
num_physpages = bootmem_lastpg - ARCH_PFN_OFFSET ;
75
75
76
76
printk (KERN_INFO "totalram_pages = %ld\n" , totalram_pages );
Original file line number Diff line number Diff line change @@ -622,7 +622,7 @@ mem_init (void)
622
622
623
623
for_each_online_pgdat (pgdat )
624
624
if (pgdat -> bdata -> node_bootmem_map )
625
- totalram_pages += free_all_bootmem_node (pgdat );
625
+ free_all_bootmem_node (pgdat );
626
626
627
627
reserved_pages = 0 ;
628
628
efi_memmap_walk (count_reserved_pages , & reserved_pages );
Original file line number Diff line number Diff line change @@ -158,7 +158,7 @@ void __init mem_init(void)
158
158
159
159
/* this will put all low memory onto the freelists */
160
160
for_each_online_node (nid )
161
- totalram_pages += free_all_bootmem_node (NODE_DATA (nid ));
161
+ free_all_bootmem_node (NODE_DATA (nid ));
162
162
163
163
reservedpages = reservedpages_count () - hole_pages ;
164
164
codesize = (unsigned long ) & _etext - (unsigned long )& _text ;
Original file line number Diff line number Diff line change @@ -155,11 +155,11 @@ void __init mem_init(void)
155
155
int i ;
156
156
157
157
/* this will put all memory onto the freelists */
158
- totalram_pages = num_physpages = 0 ;
158
+ num_physpages = 0 ;
159
159
for_each_online_pgdat (pgdat ) {
160
160
num_physpages += pgdat -> node_present_pages ;
161
161
162
- totalram_pages += free_all_bootmem_node (pgdat );
162
+ free_all_bootmem_node (pgdat );
163
163
for (i = 0 ; i < pgdat -> node_spanned_pages ; i ++ ) {
164
164
struct page * page = pgdat -> node_mem_map + i ;
165
165
char * addr = page_to_virt (page );
Original file line number Diff line number Diff line change @@ -393,14 +393,11 @@ void __init mem_init(void)
393
393
394
394
for_each_online_node (nid ) {
395
395
pg_data_t * pgdat = NODE_DATA (nid );
396
- unsigned long node_pages = 0 ;
397
396
398
397
num_physpages += pgdat -> node_present_pages ;
399
398
400
399
if (pgdat -> node_spanned_pages )
401
- node_pages = free_all_bootmem_node (pgdat );
402
-
403
- totalram_pages += node_pages ;
400
+ free_all_bootmem_node (pgdat );
404
401
}
405
402
406
403
pr_info ("Memory: %luk/%luk available\n" ,
Original file line number Diff line number Diff line change @@ -252,7 +252,7 @@ void __init mem_init(void)
252
252
high_memory = (void * )__va (memory_start + lowmem_size - 1 );
253
253
254
254
/* this will put all memory onto the freelists */
255
- totalram_pages += free_all_bootmem ();
255
+ free_all_bootmem ();
256
256
257
257
for_each_online_pgdat (pgdat ) {
258
258
unsigned long i ;
Original file line number Diff line number Diff line change @@ -374,7 +374,7 @@ void __init mem_init(void)
374
374
#endif
375
375
high_memory = (void * ) __va (max_low_pfn << PAGE_SHIFT );
376
376
377
- totalram_pages += free_all_bootmem ();
377
+ free_all_bootmem ();
378
378
setup_zero_pages (); /* Setup zeroed pages. */
379
379
380
380
reservedpages = ram = 0 ;
Original file line number Diff line number Diff line change @@ -489,7 +489,7 @@ void __init mem_init(void)
489
489
/*
490
490
* This will free up the bootmem, ie, slot 0 memory.
491
491
*/
492
- totalram_pages += free_all_bootmem_node (NODE_DATA (node ));
492
+ free_all_bootmem_node (NODE_DATA (node ));
493
493
}
494
494
495
495
setup_zero_pages (); /* This comes from node 0 */
Original file line number Diff line number Diff line change @@ -114,7 +114,7 @@ void __init mem_init(void)
114
114
memset (empty_zero_page , 0 , PAGE_SIZE );
115
115
116
116
/* this will put all low memory onto the freelists */
117
- totalram_pages += free_all_bootmem ();
117
+ free_all_bootmem ();
118
118
119
119
reservedpages = 0 ;
120
120
for (tmp = 0 ; tmp < num_physpages ; tmp ++ )
Original file line number Diff line number Diff line change @@ -207,7 +207,7 @@ static int __init free_pages_init(void)
207
207
int reservedpages , pfn ;
208
208
209
209
/* this will put all low memory onto the freelists */
210
- totalram_pages = free_all_bootmem ();
210
+ free_all_bootmem ();
211
211
212
212
reservedpages = 0 ;
213
213
for (pfn = 0 ; pfn < max_low_pfn ; pfn ++ ) {
Original file line number Diff line number Diff line change @@ -593,13 +593,13 @@ void __init mem_init(void)
593
593
594
594
#ifndef CONFIG_DISCONTIGMEM
595
595
max_mapnr = page_to_pfn (virt_to_page (high_memory - 1 )) + 1 ;
596
- totalram_pages += free_all_bootmem ();
596
+ free_all_bootmem ();
597
597
#else
598
598
{
599
599
int i ;
600
600
601
601
for (i = 0 ; i < npmem_ranges ; i ++ )
602
- totalram_pages += free_all_bootmem_node (NODE_DATA (i ));
602
+ free_all_bootmem_node (NODE_DATA (i ));
603
603
}
604
604
#endif
605
605
Original file line number Diff line number Diff line change @@ -318,13 +318,12 @@ void __init mem_init(void)
318
318
for_each_online_node (nid ) {
319
319
if (NODE_DATA (nid )-> node_spanned_pages != 0 ) {
320
320
printk ("freeing bootmem node %d\n" , nid );
321
- totalram_pages +=
322
- free_all_bootmem_node (NODE_DATA (nid ));
321
+ free_all_bootmem_node (NODE_DATA (nid ));
323
322
}
324
323
}
325
324
#else
326
325
max_mapnr = max_pfn ;
327
- totalram_pages += free_all_bootmem ();
326
+ free_all_bootmem ();
328
327
#endif
329
328
for_each_online_pgdat (pgdat ) {
330
329
for (i = 0 ; i < pgdat -> node_spanned_pages ; i ++ ) {
Original file line number Diff line number Diff line change @@ -144,7 +144,7 @@ void __init mem_init(void)
144
144
cmma_init ();
145
145
146
146
/* this will put all low memory onto the freelists */
147
- totalram_pages += free_all_bootmem ();
147
+ free_all_bootmem ();
148
148
setup_zero_pages (); /* Setup zeroed pages. */
149
149
150
150
reservedpages = 0 ;
Original file line number Diff line number Diff line change @@ -79,7 +79,7 @@ void __init mem_init(void)
79
79
unsigned long tmp , ram = 0 ;
80
80
81
81
high_memory = (void * ) __va (max_low_pfn << PAGE_SHIFT );
82
- totalram_pages += free_all_bootmem ();
82
+ free_all_bootmem ();
83
83
setup_zero_page (); /* Setup zeroed pages. */
84
84
reservedpages = 0 ;
85
85
Original file line number Diff line number Diff line change @@ -422,7 +422,7 @@ void __init mem_init(void)
422
422
num_physpages += pgdat -> node_present_pages ;
423
423
424
424
if (pgdat -> node_spanned_pages )
425
- totalram_pages += free_all_bootmem_node (pgdat );
425
+ free_all_bootmem_node (pgdat );
426
426
427
427
428
428
node_high_memory = (void * )__va ((pgdat -> node_start_pfn +
Original file line number Diff line number Diff line change @@ -323,8 +323,7 @@ void __init mem_init(void)
323
323
324
324
max_mapnr = last_valid_pfn - pfn_base ;
325
325
high_memory = __va (max_low_pfn << PAGE_SHIFT );
326
-
327
- totalram_pages = free_all_bootmem ();
326
+ free_all_bootmem ();
328
327
329
328
for (i = 0 ; sp_banks [i ].num_bytes != 0 ; i ++ ) {
330
329
unsigned long start_pfn = sp_banks [i ].base_addr >> PAGE_SHIFT ;
Original file line number Diff line number Diff line change @@ -2061,7 +2061,7 @@ void __init mem_init(void)
2061
2061
high_memory = __va (last_valid_pfn << PAGE_SHIFT );
2062
2062
2063
2063
register_page_bootmem_info ();
2064
- totalram_pages = free_all_bootmem ();
2064
+ free_all_bootmem ();
2065
2065
2066
2066
/* We subtract one to account for the mem_map_zero page
2067
2067
* allocated below.
Original file line number Diff line number Diff line change @@ -846,7 +846,7 @@ void __init mem_init(void)
846
846
set_max_mapnr_init ();
847
847
848
848
/* this will put all bootmem onto the freelists */
849
- totalram_pages += free_all_bootmem ();
849
+ free_all_bootmem ();
850
850
851
851
#ifndef CONFIG_64BIT
852
852
/* count all remaining LOWMEM and give all HIGHMEM to page allocator */
Original file line number Diff line number Diff line change @@ -65,7 +65,7 @@ void __init mem_init(void)
65
65
uml_reserved = brk_end ;
66
66
67
67
/* this will put all low memory onto the freelists */
68
- totalram_pages = free_all_bootmem ();
68
+ free_all_bootmem ();
69
69
max_low_pfn = totalram_pages ;
70
70
#ifdef CONFIG_HIGHMEM
71
71
setup_highmem (end_iomem , highmem );
Original file line number Diff line number Diff line change @@ -392,7 +392,7 @@ void __init mem_init(void)
392
392
free_unused_memmap (& meminfo );
393
393
394
394
/* this will put all unused low memory onto the freelists */
395
- totalram_pages += free_all_bootmem ();
395
+ free_all_bootmem ();
396
396
397
397
reserved_pages = free_pages = 0 ;
398
398
Original file line number Diff line number Diff line change @@ -759,7 +759,7 @@ void __init mem_init(void)
759
759
set_highmem_pages_init ();
760
760
761
761
/* this will put all low memory onto the freelists */
762
- totalram_pages += free_all_bootmem ();
762
+ free_all_bootmem ();
763
763
764
764
reservedpages = 0 ;
765
765
for (tmp = 0 ; tmp < max_low_pfn ; tmp ++ )
Original file line number Diff line number Diff line change @@ -1054,7 +1054,7 @@ void __init mem_init(void)
1054
1054
register_page_bootmem_info ();
1055
1055
1056
1056
/* this will put all memory onto the freelists */
1057
- totalram_pages = free_all_bootmem ();
1057
+ free_all_bootmem ();
1058
1058
1059
1059
absent_pages = absent_pages_in_range (0 , max_pfn );
1060
1060
reservedpages = max_pfn - totalram_pages - absent_pages ;
Original file line number Diff line number Diff line change @@ -184,7 +184,7 @@ void __init mem_init(void)
184
184
#error HIGHGMEM not implemented in init.c
185
185
#endif
186
186
187
- totalram_pages += free_all_bootmem ();
187
+ free_all_bootmem ();
188
188
189
189
reservedpages = ram = 0 ;
190
190
for (tmp = 0 ; tmp < max_mapnr ; tmp ++ ) {
Original file line number Diff line number Diff line change @@ -271,9 +271,14 @@ void __init reset_all_zones_managed_pages(void)
271
271
*/
272
272
unsigned long __init free_all_bootmem_node (pg_data_t * pgdat )
273
273
{
274
+ unsigned long pages ;
275
+
274
276
register_page_bootmem_info_node (pgdat );
275
277
reset_node_managed_pages (pgdat );
276
- return free_all_bootmem_core (pgdat -> bdata );
278
+ pages = free_all_bootmem_core (pgdat -> bdata );
279
+ totalram_pages += pages ;
280
+
281
+ return pages ;
277
282
}
278
283
279
284
/**
@@ -291,6 +296,8 @@ unsigned long __init free_all_bootmem(void)
291
296
list_for_each_entry (bdata , & bdata_list , list )
292
297
total_pages += free_all_bootmem_core (bdata );
293
298
299
+ totalram_pages += total_pages ;
300
+
294
301
return total_pages ;
295
302
}
296
303
Original file line number Diff line number Diff line change @@ -165,14 +165,19 @@ void __init reset_all_zones_managed_pages(void)
165
165
*/
166
166
unsigned long __init free_all_bootmem (void )
167
167
{
168
+ unsigned long pages ;
169
+
168
170
reset_all_zones_managed_pages ();
169
171
170
172
/*
171
173
* We need to use MAX_NUMNODES instead of NODE_DATA(0)->node_id
172
174
* because in some case like Node0 doesn't have RAM installed
173
175
* low ram will be on Node1
174
176
*/
175
- return free_low_memory_core_early ();
177
+ pages = free_low_memory_core_early ();
178
+ totalram_pages += pages ;
179
+
180
+ return pages ;
176
181
}
177
182
178
183
/**
You can’t perform that action at this time.
0 commit comments