mm: fix section mismatch warnings
authorSam Ravnborg <sam@ravnborg.org>
Thu, 17 May 2007 21:29:25 +0000 (23:29 +0200)
committerSam Ravnborg <sam@ravnborg.org>
Sat, 19 May 2007 07:11:58 +0000 (09:11 +0200)
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>
mm/page_alloc.c
mm/sparse.c
scripts/mod/modpost.c

index ae96dd8444323e679d3d530e3f6150b1dde11e2e..8b000d6803c298adf0c2402a3cd9296b350e32e5 100644 (file)
@@ -2165,7 +2165,7 @@ void __init setup_per_cpu_pageset(void)
 
 #endif
 
 
 #endif
 
-static __meminit noinline
+static noinline __init_refok
 int zone_wait_table_init(struct zone *zone, unsigned long zone_size_pages)
 {
        int i;
 int zone_wait_table_init(struct zone *zone, unsigned long zone_size_pages)
 {
        int i;
@@ -2678,7 +2678,7 @@ static void __meminit free_area_init_core(struct pglist_data *pgdat,
        }
 }
 
        }
 }
 
-static void __meminit alloc_node_mem_map(struct pglist_data *pgdat)
+static void __init_refok alloc_node_mem_map(struct pglist_data *pgdat)
 {
        /* Skip empty nodes */
        if (!pgdat->node_spanned_pages)
 {
        /* Skip empty nodes */
        if (!pgdat->node_spanned_pages)
index 6f3fff907bc25719926d0e91f4b0ea70335b4447..1302f8348d51c8dbc10d104c333eeea3e01a6f1a 100644 (file)
@@ -44,7 +44,7 @@ EXPORT_SYMBOL(page_to_nid);
 #endif
 
 #ifdef CONFIG_SPARSEMEM_EXTREME
 #endif
 
 #ifdef CONFIG_SPARSEMEM_EXTREME
-static struct mem_section noinline *sparse_index_alloc(int nid)
+static struct mem_section noinline __init_refok *sparse_index_alloc(int nid)
 {
        struct mem_section *section = NULL;
        unsigned long array_size = SECTIONS_PER_ROOT *
 {
        struct mem_section *section = NULL;
        unsigned long array_size = SECTIONS_PER_ROOT *
index 40fb7b6a00b15ad3deed56cbada97737e688a4f0..8424d1f53bbe6e2b9cb646ee32d94fe239c89938 100644 (file)
@@ -641,12 +641,6 @@ static int strrcmp(const char *s, const char *sub)
  *  tosec   = .init.text
  *  fromsec  = .paravirtprobe
  *
  *  tosec   = .init.text
  *  fromsec  = .paravirtprobe
  *
- * Pattern 9:
- *  Some of functions are common code between boot time and hotplug
- *  time. The bootmem allocater is called only boot time in its
- *  functions. So it's ok to reference.
- *  tosec    = .init.text
- *
  * Pattern 10:
  *  ia64 has machvec table for each platform and
  *  powerpc has a machine desc table for each platform.
  * Pattern 10:
  *  ia64 has machvec table for each platform and
  *  powerpc has a machine desc table for each platform.
@@ -678,12 +672,6 @@ static int secref_whitelist(const char *modname, const char *tosec,
                NULL
        };
 
                NULL
        };
 
-       const char *pat4sym[] = {
-               "sparse_index_alloc",
-               "zone_wait_table_init",
-               NULL
-       };
-
        /* Check for pattern 0 */
        if ((strcmp(fromsec, ".text.init.refok") == 0) ||
            (strcmp(fromsec, ".data.init.refok") == 0))
        /* Check for pattern 0 */
        if ((strcmp(fromsec, ".text.init.refok") == 0) ||
            (strcmp(fromsec, ".data.init.refok") == 0))
@@ -741,13 +729,6 @@ static int secref_whitelist(const char *modname, const char *tosec,
            (strcmp(fromsec, ".paravirtprobe") == 0))
                return 1;
 
            (strcmp(fromsec, ".paravirtprobe") == 0))
                return 1;
 
-       /* Check for pattern 9 */
-       if ((strcmp(tosec, ".init.text") == 0) &&
-           (strcmp(fromsec, ".text") == 0))
-               for (s = pat4sym; *s; s++)
-                       if (strcmp(atsym, *s) == 0)
-                               return 1;
-
        /* Check for pattern 10 */
        if ((strcmp(fromsec, ".machvec") == 0) ||
            (strcmp(fromsec, ".machine.desc") == 0))
        /* Check for pattern 10 */
        if ((strcmp(fromsec, ".machvec") == 0) ||
            (strcmp(fromsec, ".machine.desc") == 0))