aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYasunori Goto <y-goto@jp.fujitsu.com>2006-06-23 05:03:09 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-23 10:42:46 -0400
commit86356ab147669bd3bcb2149fd9561d1280835c24 (patch)
treebedc7113593e0f6a91aff18bb506fc3327516d81
parent02b694dea473ad3db1e2d1b14c1fef8fbd92e5e6 (diff)
[PATCH] wait_table and zonelist initializing for memory hotadd: change to meminit for build_zonelist
Change definitions of some functions and data from __init to __meminit. These functions and data can be used after bootup by this patch to be used for hot-add codes. Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--include/linux/bootmem.h4
-rw-r--r--mm/page_alloc.c18
2 files changed, 11 insertions, 11 deletions
diff --git a/include/linux/bootmem.h b/include/linux/bootmem.h
index da2d107fe2cf..22866fa2d960 100644
--- a/include/linux/bootmem.h
+++ b/include/linux/bootmem.h
@@ -91,8 +91,8 @@ static inline void *alloc_remap(int nid, unsigned long size)
91} 91}
92#endif 92#endif
93 93
94extern unsigned long __initdata nr_kernel_pages; 94extern unsigned long nr_kernel_pages;
95extern unsigned long __initdata nr_all_pages; 95extern unsigned long nr_all_pages;
96 96
97extern void *__init alloc_large_system_hash(const char *tablename, 97extern void *__init alloc_large_system_hash(const char *tablename,
98 unsigned long bucketsize, 98 unsigned long bucketsize,
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 27320a0542d3..5ae75bead4df 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -83,8 +83,8 @@ EXPORT_SYMBOL(zone_table);
83static char *zone_names[MAX_NR_ZONES] = { "DMA", "DMA32", "Normal", "HighMem" }; 83static char *zone_names[MAX_NR_ZONES] = { "DMA", "DMA32", "Normal", "HighMem" };
84int min_free_kbytes = 1024; 84int min_free_kbytes = 1024;
85 85
86unsigned long __initdata nr_kernel_pages; 86unsigned long __meminitdata nr_kernel_pages;
87unsigned long __initdata nr_all_pages; 87unsigned long __meminitdata nr_all_pages;
88 88
89#ifdef CONFIG_DEBUG_VM 89#ifdef CONFIG_DEBUG_VM
90static int page_outside_zone_boundaries(struct zone *zone, struct page *page) 90static int page_outside_zone_boundaries(struct zone *zone, struct page *page)
@@ -1517,7 +1517,7 @@ void show_free_areas(void)
1517 * 1517 *
1518 * Add all populated zones of a node to the zonelist. 1518 * Add all populated zones of a node to the zonelist.
1519 */ 1519 */
1520static int __init build_zonelists_node(pg_data_t *pgdat, 1520static int __meminit build_zonelists_node(pg_data_t *pgdat,
1521 struct zonelist *zonelist, int nr_zones, int zone_type) 1521 struct zonelist *zonelist, int nr_zones, int zone_type)
1522{ 1522{
1523 struct zone *zone; 1523 struct zone *zone;
@@ -1553,7 +1553,7 @@ static inline int highest_zone(int zone_bits)
1553 1553
1554#ifdef CONFIG_NUMA 1554#ifdef CONFIG_NUMA
1555#define MAX_NODE_LOAD (num_online_nodes()) 1555#define MAX_NODE_LOAD (num_online_nodes())
1556static int __initdata node_load[MAX_NUMNODES]; 1556static int __meminitdata node_load[MAX_NUMNODES];
1557/** 1557/**
1558 * find_next_best_node - find the next node that should appear in a given node's fallback list 1558 * find_next_best_node - find the next node that should appear in a given node's fallback list
1559 * @node: node whose fallback list we're appending 1559 * @node: node whose fallback list we're appending
@@ -1568,7 +1568,7 @@ static int __initdata node_load[MAX_NUMNODES];
1568 * on them otherwise. 1568 * on them otherwise.
1569 * It returns -1 if no node is found. 1569 * It returns -1 if no node is found.
1570 */ 1570 */
1571static int __init find_next_best_node(int node, nodemask_t *used_node_mask) 1571static int __meminit find_next_best_node(int node, nodemask_t *used_node_mask)
1572{ 1572{
1573 int n, val; 1573 int n, val;
1574 int min_val = INT_MAX; 1574 int min_val = INT_MAX;
@@ -1614,7 +1614,7 @@ static int __init find_next_best_node(int node, nodemask_t *used_node_mask)
1614 return best_node; 1614 return best_node;
1615} 1615}
1616 1616
1617static void __init build_zonelists(pg_data_t *pgdat) 1617static void __meminit build_zonelists(pg_data_t *pgdat)
1618{ 1618{
1619 int i, j, k, node, local_node; 1619 int i, j, k, node, local_node;
1620 int prev_node, load; 1620 int prev_node, load;
@@ -1666,7 +1666,7 @@ static void __init build_zonelists(pg_data_t *pgdat)
1666 1666
1667#else /* CONFIG_NUMA */ 1667#else /* CONFIG_NUMA */
1668 1668
1669static void __init build_zonelists(pg_data_t *pgdat) 1669static void __meminit build_zonelists(pg_data_t *pgdat)
1670{ 1670{
1671 int i, j, k, node, local_node; 1671 int i, j, k, node, local_node;
1672 1672
@@ -2071,7 +2071,7 @@ static __meminit void init_currently_empty_zone(struct zone *zone,
2071 * - mark all memory queues empty 2071 * - mark all memory queues empty
2072 * - clear the memory bitmaps 2072 * - clear the memory bitmaps
2073 */ 2073 */
2074static void __init free_area_init_core(struct pglist_data *pgdat, 2074static void __meminit free_area_init_core(struct pglist_data *pgdat,
2075 unsigned long *zones_size, unsigned long *zholes_size) 2075 unsigned long *zones_size, unsigned long *zholes_size)
2076{ 2076{
2077 unsigned long j; 2077 unsigned long j;
@@ -2159,7 +2159,7 @@ static void __init alloc_node_mem_map(struct pglist_data *pgdat)
2159#endif /* CONFIG_FLAT_NODE_MEM_MAP */ 2159#endif /* CONFIG_FLAT_NODE_MEM_MAP */
2160} 2160}
2161 2161
2162void __init free_area_init_node(int nid, struct pglist_data *pgdat, 2162void __meminit free_area_init_node(int nid, struct pglist_data *pgdat,
2163 unsigned long *zones_size, unsigned long node_start_pfn, 2163 unsigned long *zones_size, unsigned long node_start_pfn,
2164 unsigned long *zholes_size) 2164 unsigned long *zholes_size)
2165{ 2165{