Commit 86356ab1 authored by Yasunori Goto's avatar Yasunori Goto Committed by Linus Torvalds

[PATCH] wait_table and zonelist initializing for memory hotadd: change to...

[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: default avatarYasunori Goto <y-goto@jp.fujitsu.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 02b694de
...@@ -91,8 +91,8 @@ static inline void *alloc_remap(int nid, unsigned long size) ...@@ -91,8 +91,8 @@ static inline void *alloc_remap(int nid, unsigned long size)
} }
#endif #endif
extern unsigned long __initdata nr_kernel_pages; extern unsigned long nr_kernel_pages;
extern unsigned long __initdata nr_all_pages; extern unsigned long nr_all_pages;
extern void *__init alloc_large_system_hash(const char *tablename, extern void *__init alloc_large_system_hash(const char *tablename,
unsigned long bucketsize, unsigned long bucketsize,
......
...@@ -83,8 +83,8 @@ EXPORT_SYMBOL(zone_table); ...@@ -83,8 +83,8 @@ EXPORT_SYMBOL(zone_table);
static char *zone_names[MAX_NR_ZONES] = { "DMA", "DMA32", "Normal", "HighMem" }; static char *zone_names[MAX_NR_ZONES] = { "DMA", "DMA32", "Normal", "HighMem" };
int min_free_kbytes = 1024; int min_free_kbytes = 1024;
unsigned long __initdata nr_kernel_pages; unsigned long __meminitdata nr_kernel_pages;
unsigned long __initdata nr_all_pages; unsigned long __meminitdata nr_all_pages;
#ifdef CONFIG_DEBUG_VM #ifdef CONFIG_DEBUG_VM
static int page_outside_zone_boundaries(struct zone *zone, struct page *page) static int page_outside_zone_boundaries(struct zone *zone, struct page *page)
...@@ -1517,7 +1517,7 @@ void show_free_areas(void) ...@@ -1517,7 +1517,7 @@ void show_free_areas(void)
* *
* Add all populated zones of a node to the zonelist. * Add all populated zones of a node to the zonelist.
*/ */
static int __init build_zonelists_node(pg_data_t *pgdat, static int __meminit build_zonelists_node(pg_data_t *pgdat,
struct zonelist *zonelist, int nr_zones, int zone_type) struct zonelist *zonelist, int nr_zones, int zone_type)
{ {
struct zone *zone; struct zone *zone;
...@@ -1553,7 +1553,7 @@ static inline int highest_zone(int zone_bits) ...@@ -1553,7 +1553,7 @@ static inline int highest_zone(int zone_bits)
#ifdef CONFIG_NUMA #ifdef CONFIG_NUMA
#define MAX_NODE_LOAD (num_online_nodes()) #define MAX_NODE_LOAD (num_online_nodes())
static int __initdata node_load[MAX_NUMNODES]; static int __meminitdata node_load[MAX_NUMNODES];
/** /**
* find_next_best_node - find the next node that should appear in a given node's fallback list * find_next_best_node - find the next node that should appear in a given node's fallback list
* @node: node whose fallback list we're appending * @node: node whose fallback list we're appending
...@@ -1568,7 +1568,7 @@ static int __initdata node_load[MAX_NUMNODES]; ...@@ -1568,7 +1568,7 @@ static int __initdata node_load[MAX_NUMNODES];
* on them otherwise. * on them otherwise.
* It returns -1 if no node is found. * It returns -1 if no node is found.
*/ */
static int __init find_next_best_node(int node, nodemask_t *used_node_mask) static int __meminit find_next_best_node(int node, nodemask_t *used_node_mask)
{ {
int n, val; int n, val;
int min_val = INT_MAX; int min_val = INT_MAX;
...@@ -1614,7 +1614,7 @@ static int __init find_next_best_node(int node, nodemask_t *used_node_mask) ...@@ -1614,7 +1614,7 @@ static int __init find_next_best_node(int node, nodemask_t *used_node_mask)
return best_node; return best_node;
} }
static void __init build_zonelists(pg_data_t *pgdat) static void __meminit build_zonelists(pg_data_t *pgdat)
{ {
int i, j, k, node, local_node; int i, j, k, node, local_node;
int prev_node, load; int prev_node, load;
...@@ -1666,7 +1666,7 @@ static void __init build_zonelists(pg_data_t *pgdat) ...@@ -1666,7 +1666,7 @@ static void __init build_zonelists(pg_data_t *pgdat)
#else /* CONFIG_NUMA */ #else /* CONFIG_NUMA */
static void __init build_zonelists(pg_data_t *pgdat) static void __meminit build_zonelists(pg_data_t *pgdat)
{ {
int i, j, k, node, local_node; int i, j, k, node, local_node;
...@@ -2071,7 +2071,7 @@ static __meminit void init_currently_empty_zone(struct zone *zone, ...@@ -2071,7 +2071,7 @@ static __meminit void init_currently_empty_zone(struct zone *zone,
* - mark all memory queues empty * - mark all memory queues empty
* - clear the memory bitmaps * - clear the memory bitmaps
*/ */
static void __init free_area_init_core(struct pglist_data *pgdat, static void __meminit free_area_init_core(struct pglist_data *pgdat,
unsigned long *zones_size, unsigned long *zholes_size) unsigned long *zones_size, unsigned long *zholes_size)
{ {
unsigned long j; unsigned long j;
...@@ -2159,7 +2159,7 @@ static void __init alloc_node_mem_map(struct pglist_data *pgdat) ...@@ -2159,7 +2159,7 @@ static void __init alloc_node_mem_map(struct pglist_data *pgdat)
#endif /* CONFIG_FLAT_NODE_MEM_MAP */ #endif /* CONFIG_FLAT_NODE_MEM_MAP */
} }
void __init free_area_init_node(int nid, struct pglist_data *pgdat, void __meminit free_area_init_node(int nid, struct pglist_data *pgdat,
unsigned long *zones_size, unsigned long node_start_pfn, unsigned long *zones_size, unsigned long node_start_pfn,
unsigned long *zholes_size) unsigned long *zholes_size)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment