aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorJiang Liu <liuj97@gmail.com>2013-07-03 18:03:24 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-07-03 19:07:33 -0400
commit0c988534737a358fdff42fcce78f0ff1a12dbfc5 (patch)
tree8327783ebf8d9905b00e51908a210134dc55a035 /mm
parent3dcc0571cd64816309765b7c7e4691a4cadf2ee7 (diff)
mm: concentrate modification of totalram_pages into the mm core
Concentrate code to modify totalram_pages into the mm core, so the arch memory initialized code doesn't need to take care of it. With these changes applied, only following functions from mm core modify global variable totalram_pages: free_bootmem_late(), free_all_bootmem(), free_all_bootmem_node(), adjust_managed_page_count(). With this patch applied, it will be much more easier for us to keep totalram_pages and zone->managed_pages in consistence. Signed-off-by: Jiang Liu <jiang.liu@huawei.com> Acked-by: David Howells <dhowells@redhat.com> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: "Michael S. Tsirkin" <mst@redhat.com> Cc: <sworddragon2@aol.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Chris Metcalf <cmetcalf@tilera.com> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Jeremy Fitzhardinge <jeremy@goop.org> Cc: Jianguo Wu <wujianguo@huawei.com> Cc: Joonsoo Kim <js1304@gmail.com> Cc: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Cc: Marek Szyprowski <m.szyprowski@samsung.com> Cc: Mel Gorman <mel@csn.ul.ie> Cc: Michel Lespinasse <walken@google.com> Cc: Minchan Kim <minchan@kernel.org> Cc: Rik van Riel <riel@redhat.com> Cc: Rusty Russell <rusty@rustcorp.com.au> Cc: Tang Chen <tangchen@cn.fujitsu.com> Cc: Tejun Heo <tj@kernel.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Wen Congyang <wency@cn.fujitsu.com> Cc: Will Deacon <will.deacon@arm.com> Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> Cc: Yinghai Lu <yinghai@kernel.org> Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/bootmem.c9
-rw-r--r--mm/nobootmem.c7
2 files changed, 14 insertions, 2 deletions
diff --git a/mm/bootmem.c b/mm/bootmem.c
index eb792323187b..58609bbf584e 100644
--- a/mm/bootmem.c
+++ b/mm/bootmem.c
@@ -271,9 +271,14 @@ void __init reset_all_zones_managed_pages(void)
271 */ 271 */
272unsigned long __init free_all_bootmem_node(pg_data_t *pgdat) 272unsigned long __init free_all_bootmem_node(pg_data_t *pgdat)
273{ 273{
274 unsigned long pages;
275
274 register_page_bootmem_info_node(pgdat); 276 register_page_bootmem_info_node(pgdat);
275 reset_node_managed_pages(pgdat); 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 list_for_each_entry(bdata, &bdata_list, list) 296 list_for_each_entry(bdata, &bdata_list, list)
292 total_pages += free_all_bootmem_core(bdata); 297 total_pages += free_all_bootmem_core(bdata);
293 298
299 totalram_pages += total_pages;
300
294 return total_pages; 301 return total_pages;
295} 302}
296 303
diff --git a/mm/nobootmem.c b/mm/nobootmem.c
index 0ae8d91365af..61107cf55bb3 100644
--- a/mm/nobootmem.c
+++ b/mm/nobootmem.c
@@ -165,6 +165,8 @@ void __init reset_all_zones_managed_pages(void)
165 */ 165 */
166unsigned long __init free_all_bootmem(void) 166unsigned long __init free_all_bootmem(void)
167{ 167{
168 unsigned long pages;
169
168 reset_all_zones_managed_pages(); 170 reset_all_zones_managed_pages();
169 171
170 /* 172 /*
@@ -172,7 +174,10 @@ unsigned long __init free_all_bootmem(void)
172 * because in some case like Node0 doesn't have RAM installed 174 * because in some case like Node0 doesn't have RAM installed
173 * low ram will be on Node1 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/**