git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mem-hotplug: reset node managed pages when hot-adding a new pgdat
[pandora-kernel.git]
/
mm
/
bootmem.c
diff --git
a/mm/bootmem.c
b/mm/bootmem.c
index
8a000ce
..
477be69
100644
(file)
--- a/
mm/bootmem.c
+++ b/
mm/bootmem.c
@@
-243,13
+243,10
@@
static unsigned long __init free_all_bootmem_core(bootmem_data_t *bdata)
static int reset_managed_pages_done __initdata;
static int reset_managed_pages_done __initdata;
-
static inline void __init
reset_node_managed_pages(pg_data_t *pgdat)
+
void
reset_node_managed_pages(pg_data_t *pgdat)
{
struct zone *z;
{
struct zone *z;
- if (reset_managed_pages_done)
- return;
-
for (z = pgdat->node_zones; z < pgdat->node_zones + MAX_NR_ZONES; z++)
z->managed_pages = 0;
}
for (z = pgdat->node_zones; z < pgdat->node_zones + MAX_NR_ZONES; z++)
z->managed_pages = 0;
}
@@
-258,8
+255,12
@@
void __init reset_all_zones_managed_pages(void)
{
struct pglist_data *pgdat;
{
struct pglist_data *pgdat;
+ if (reset_managed_pages_done)
+ return;
+
for_each_online_pgdat(pgdat)
reset_node_managed_pages(pgdat);
for_each_online_pgdat(pgdat)
reset_node_managed_pages(pgdat);
+
reset_managed_pages_done = 1;
}
reset_managed_pages_done = 1;
}