|
@@ -3008,14 +3008,6 @@ static __init_refok int __build_all_zonelists(void *data)
|
|
|
build_zonelist_cache(pgdat);
|
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_MEMORY_HOTPLUG
|
|
|
- /* Setup real pagesets for the new zone */
|
|
|
- if (data) {
|
|
|
- struct zone *zone = data;
|
|
|
- setup_zone_pageset(zone);
|
|
|
- }
|
|
|
-#endif
|
|
|
-
|
|
|
/*
|
|
|
* Initialize the boot_pagesets that are going to be used
|
|
|
* for bootstrapping processors. The real pagesets for
|
|
@@ -3064,7 +3056,11 @@ void build_all_zonelists(void *data)
|
|
|
} else {
|
|
|
/* we have to stop all cpus to guarantee there is no user
|
|
|
of zonelist */
|
|
|
- stop_machine(__build_all_zonelists, data, NULL);
|
|
|
+#ifdef CONFIG_MEMORY_HOTPLUG
|
|
|
+ if (data)
|
|
|
+ setup_zone_pageset((struct zone *)data);
|
|
|
+#endif
|
|
|
+ stop_machine(__build_all_zonelists, NULL, NULL);
|
|
|
/* cpuset refresh routine should be here */
|
|
|
}
|
|
|
vm_total_pages = nr_free_pagecache_pages();
|