diff options
| author | Wim Van Sebroeck <wim@iguana.be> | 2007-05-11 19:03:13 +0000 | 
|---|---|---|
| committer | Wim Van Sebroeck <wim@iguana.be> | 2007-05-11 19:03:13 +0000 | 
| commit | 5c34202b8bf942da411b6599668a76b07449bbfd (patch) | |
| tree | 5719c361321eaddc8e4f1b0c8a7994f0e9a6fdd3 /mm/sparse.c | |
| parent | 0d4804b31f91cfbcff6d62af0bc09a893a1c8ae0 (diff) | |
| parent | 1f8a6b658a943b4f04a1fc7b3a420360202c86cd (diff) | |
Merge /pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'mm/sparse.c')
| -rw-r--r-- | mm/sparse.c | 14 | 
1 files changed, 8 insertions, 6 deletions
diff --git a/mm/sparse.c b/mm/sparse.c index ac26eb0d73c..6f3fff907bc 100644 --- a/mm/sparse.c +++ b/mm/sparse.c @@ -44,7 +44,7 @@ EXPORT_SYMBOL(page_to_nid);  #endif  #ifdef CONFIG_SPARSEMEM_EXTREME -static struct mem_section *sparse_index_alloc(int nid) +static struct mem_section noinline *sparse_index_alloc(int nid)  {  	struct mem_section *section = NULL;  	unsigned long array_size = SECTIONS_PER_ROOT * @@ -61,7 +61,7 @@ static struct mem_section *sparse_index_alloc(int nid)  	return section;  } -static int sparse_index_init(unsigned long section_nr, int nid) +static int __meminit sparse_index_init(unsigned long section_nr, int nid)  {  	static DEFINE_SPINLOCK(index_init_lock);  	unsigned long root = SECTION_NR_TO_ROOT(section_nr); @@ -138,7 +138,7 @@ static inline int sparse_early_nid(struct mem_section *section)  }  /* Record a memory area against a node. */ -void memory_present(int nid, unsigned long start, unsigned long end) +void __init memory_present(int nid, unsigned long start, unsigned long end)  {  	unsigned long pfn; @@ -197,7 +197,7 @@ struct page *sparse_decode_mem_map(unsigned long coded_mem_map, unsigned long pn  	return ((struct page *)coded_mem_map) + section_nr_to_pfn(pnum);  } -static int sparse_init_one_section(struct mem_section *ms, +static int __meminit sparse_init_one_section(struct mem_section *ms,  		unsigned long pnum, struct page *mem_map)  {  	if (!valid_section(ms)) @@ -209,7 +209,7 @@ static int sparse_init_one_section(struct mem_section *ms,  	return 1;  } -static struct page *sparse_early_mem_map_alloc(unsigned long pnum) +static struct page __init *sparse_early_mem_map_alloc(unsigned long pnum)  {  	struct page *map;  	struct mem_section *ms = __nr_to_section(pnum); @@ -272,7 +272,7 @@ static void __kfree_section_memmap(struct page *memmap, unsigned long nr_pages)   * Allocate the accumulated non-linear sections, allocate a mem_map   * for each and record the physical to section mapping.   */ -void sparse_init(void) +void __init sparse_init(void)  {  	unsigned long pnum;  	struct page *map; @@ -288,6 +288,7 @@ void sparse_init(void)  	}  } +#ifdef CONFIG_MEMORY_HOTPLUG  /*   * returns the number of sections whose mem_maps were properly   * set.  If this is <=0, then that means that the passed-in @@ -327,3 +328,4 @@ out:  		__kfree_section_memmap(memmap, nr_pages);  	return ret;  } +#endif  | 
