aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Ravnborg <sam@ravnborg.org>2007-05-17 17:29:25 -0400
committerSam Ravnborg <sam@ravnborg.org>2007-05-19 03:11:58 -0400
commit577a32f620271416d05f852477151fb51c790bc6 (patch)
tree9c4f219f59fc8117aa7d376d130d57f1ac841a8e
parent92080309df1975729a9f8b45fd56528817e34db8 (diff)
mm: fix section mismatch warnings
modpost had two cases hardcoded for mm/ Shift over to __init_refok and kill the hardcoded function names in modpost. This has the drawback that the functions will always be kept no matter configuration. With previous code the function were placed in init section if configuration allowed it. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
-rw-r--r--mm/page_alloc.c4
-rw-r--r--mm/sparse.c2
-rw-r--r--scripts/mod/modpost.c19
3 files changed, 3 insertions, 22 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index ae96dd844432..8b000d6803c2 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -2165,7 +2165,7 @@ void __init setup_per_cpu_pageset(void)
2165 2165
2166#endif 2166#endif
2167 2167
2168static __meminit noinline 2168static noinline __init_refok
2169int zone_wait_table_init(struct zone *zone, unsigned long zone_size_pages) 2169int zone_wait_table_init(struct zone *zone, unsigned long zone_size_pages)
2170{ 2170{
2171 int i; 2171 int i;
@@ -2678,7 +2678,7 @@ static void __meminit free_area_init_core(struct pglist_data *pgdat,
2678 } 2678 }
2679} 2679}
2680 2680
2681static void __meminit alloc_node_mem_map(struct pglist_data *pgdat) 2681static void __init_refok alloc_node_mem_map(struct pglist_data *pgdat)
2682{ 2682{
2683 /* Skip empty nodes */ 2683 /* Skip empty nodes */
2684 if (!pgdat->node_spanned_pages) 2684 if (!pgdat->node_spanned_pages)
diff --git a/mm/sparse.c b/mm/sparse.c
index 6f3fff907bc2..1302f8348d51 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 noinline *sparse_index_alloc(int nid) 47static struct mem_section noinline __init_refok *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 *
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 40fb7b6a00b1..8424d1f53bbe 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -641,12 +641,6 @@ static int strrcmp(const char *s, const char *sub)
641 * tosec = .init.text 641 * tosec = .init.text
642 * fromsec = .paravirtprobe 642 * fromsec = .paravirtprobe
643 * 643 *
644 * Pattern 9:
645 * Some of functions are common code between boot time and hotplug
646 * time. The bootmem allocater is called only boot time in its
647 * functions. So it's ok to reference.
648 * tosec = .init.text
649 *
650 * Pattern 10: 644 * Pattern 10:
651 * ia64 has machvec table for each platform and 645 * ia64 has machvec table for each platform and
652 * powerpc has a machine desc table for each platform. 646 * powerpc has a machine desc table for each platform.
@@ -678,12 +672,6 @@ static int secref_whitelist(const char *modname, const char *tosec,
678 NULL 672 NULL
679 }; 673 };
680 674
681 const char *pat4sym[] = {
682 "sparse_index_alloc",
683 "zone_wait_table_init",
684 NULL
685 };
686
687 /* Check for pattern 0 */ 675 /* Check for pattern 0 */
688 if ((strcmp(fromsec, ".text.init.refok") == 0) || 676 if ((strcmp(fromsec, ".text.init.refok") == 0) ||
689 (strcmp(fromsec, ".data.init.refok") == 0)) 677 (strcmp(fromsec, ".data.init.refok") == 0))
@@ -741,13 +729,6 @@ static int secref_whitelist(const char *modname, const char *tosec,
741 (strcmp(fromsec, ".paravirtprobe") == 0)) 729 (strcmp(fromsec, ".paravirtprobe") == 0))
742 return 1; 730 return 1;
743 731
744 /* Check for pattern 9 */
745 if ((strcmp(tosec, ".init.text") == 0) &&
746 (strcmp(fromsec, ".text") == 0))
747 for (s = pat4sym; *s; s++)
748 if (strcmp(atsym, *s) == 0)
749 return 1;
750
751 /* Check for pattern 10 */ 732 /* Check for pattern 10 */
752 if ((strcmp(fromsec, ".machvec") == 0) || 733 if ((strcmp(fromsec, ".machvec") == 0) ||
753 (strcmp(fromsec, ".machine.desc") == 0)) 734 (strcmp(fromsec, ".machine.desc") == 0))