aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorYasunori Goto <y-goto@jp.fujitsu.com>2007-05-08 03:23:10 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-08 14:14:57 -0400
commit72280ede316911fd5a82ef78d12a6705b1007d36 (patch)
treec6cdec169d300f6967c47771917d99035423bf91 /mm
parenta3142c8e1dd57ff48040bdb3478cff9312543dc3 (diff)
Add white list into modpost.c for memory hotplug code and ia64's machvec section
This patch is add white list into modpost.c for some functions and ia64's section to fix section mismatchs. sparse_index_alloc() and zone_wait_table_init() calls bootmem allocator at boot time, and kmalloc/vmalloc at hotplug time. If config memory hotplug is on, there are references of bootmem allocater(init text) from them (normal text). This is cause of section mismatch. Bootmem is called by many functions and it must be used only at boot time. I think __init of them should keep for section mismatch check. So, I would like to register sparse_index_alloc() and zone_wait_table_init() into white list. In addition, ia64's .machvec section is function table of some platform dependent code. It is mixture of .init.text and normal text. These reference of __init functions are valid too. Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com> Cc: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/page_alloc.c2
-rw-r--r--mm/sparse.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index fd7745111e16..6fd0b7455b0b 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -2179,7 +2179,7 @@ void __init setup_per_cpu_pageset(void)
2179 2179
2180#endif 2180#endif
2181 2181
2182static __meminit 2182static __meminit noinline
2183int zone_wait_table_init(struct zone *zone, unsigned long zone_size_pages) 2183int zone_wait_table_init(struct zone *zone, unsigned long zone_size_pages)
2184{ 2184{
2185 int i; 2185 int i;
diff --git a/mm/sparse.c b/mm/sparse.c
index 9079afe8f457..6f3fff907bc2 100644
--- a/mm/sparse.c
+++ b/mm/sparse.c
@@ -44,7 +44,7 @@ EXPORT_SYMBOL(page_to_nid);
44#endif 44#endif
45 45
46#ifdef CONFIG_SPARSEMEM_EXTREME 46#ifdef CONFIG_SPARSEMEM_EXTREME
47static struct mem_section *sparse_index_alloc(int nid) 47static struct mem_section noinline *sparse_index_alloc(int nid)
48{ 48{
49 struct mem_section *section = NULL; 49 struct mem_section *section = NULL;
50 unsigned long array_size = SECTIONS_PER_ROOT * 50 unsigned long array_size = SECTIONS_PER_ROOT *