Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1833d6bc72893265f22addd79cf52e6987496e0f
Commit:     1833d6bc72893265f22addd79cf52e6987496e0f
Parent:     e073ae1b34d5600ffc550407625dcb2d4cf46c6e
Author:     Vivek Goyal <[EMAIL PROTECTED]>
AuthorDate: Wed May 2 19:27:08 2007 +0200
Committer:  Andi Kleen <[EMAIL PROTECTED]>
CommitDate: Wed May 2 19:27:08 2007 +0200

    [PATCH] i386: modpost apic related warning fixes
    
    o Modpost generates warnings for i386 if compiled with CONFIG_RELOCATABLE=y
    
    WARNING: vmlinux - Section mismatch: reference to 
.init.text:find_unisys_acpi_oem_table from .text between 'acpi_madt_oem_check' 
(at offset 0xc0101eda) and 'enable_apic_mode'
    WARNING: vmlinux - Section mismatch: reference to 
.init.text:acpi_get_table_header_early from .text between 'acpi_madt_oem_check' 
(at offset 0xc0101ef0) and 'enable_apic_mode'
    WARNING: vmlinux - Section mismatch: reference to 
.init.text:parse_unisys_oem from .text between 'acpi_madt_oem_check' (at offset 
0xc0101f2e) and 'enable_apic_mode'
    WARNING: vmlinux - Section mismatch: reference to .init.text:setup_unisys 
from .text between 'acpi_madt_oem_check' (at offset 0xc0101f37) and 
'enable_apic_mode'WARNING: vmlinux - Section mismatch: reference to 
.init.text:parse_unisys_oem from .text between 'mps_oem_check' (at offset 
0xc0101ec7) and 'acpi_madt_oem_check'
    WARNING: vmlinux - Section mismatch: reference to .init.text:es7000_sw_apic 
from .text between 'enable_apic_mode' (at offset 0xc0101f48) and 
'check_apicid_present'
    
    o Some functions which are inline (acpi_madt_oem_check) are not inlined by
      compiler as these functions are accessed using function pointer. These
      functions are put in .text section and they in-turn access __init type
      functions hence modpost generates warnings.
    
    o Do not iniline acpi_madt_oem_check, instead make it __init.
    
    Signed-off-by: Vivek Goyal <[EMAIL PROTECTED]>
    Signed-off-by: Andi Kleen <[EMAIL PROTECTED]>
    Cc: Andi Kleen <[EMAIL PROTECTED]>
    Cc: Len Brown <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---
 arch/i386/mach-generic/es7000.c             |   41 +++++++++++++++++++++++++++
 include/asm-i386/mach-es7000/mach_apic.h    |    7 ----
 include/asm-i386/mach-es7000/mach_mpparse.h |   32 ---------------------
 scripts/mod/modpost.c                       |    1 +
 4 files changed, 42 insertions(+), 39 deletions(-)

diff --git a/arch/i386/mach-generic/es7000.c b/arch/i386/mach-generic/es7000.c
index b8963a5..b47f951 100644
--- a/arch/i386/mach-generic/es7000.c
+++ b/arch/i386/mach-generic/es7000.c
@@ -25,4 +25,45 @@ static int probe_es7000(void)
        return 0;
 }
 
+extern void es7000_sw_apic(void);
+static void __init enable_apic_mode(void)
+{
+       es7000_sw_apic();
+       return;
+}
+
+static __init int mps_oem_check(struct mp_config_table *mpc, char *oem,
+               char *productid)
+{
+       if (mpc->mpc_oemptr) {
+               struct mp_config_oemtable *oem_table =
+                       (struct mp_config_oemtable *)mpc->mpc_oemptr;
+               if (!strncmp(oem, "UNISYS", 6))
+                       return parse_unisys_oem((char *)oem_table);
+       }
+       return 0;
+}
+
+#ifdef CONFIG_ACPI
+/* Hook from generic ACPI tables.c */
+static int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
+{
+       unsigned long oem_addr;
+       if (!find_unisys_acpi_oem_table(&oem_addr)) {
+               if (es7000_check_dsdt())
+                       return parse_unisys_oem((char *)oem_addr);
+               else {
+                       setup_unisys();
+                       return 1;
+               }
+       }
+       return 0;
+}
+#else
+static int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
+{
+       return 0;
+}
+#endif
+
 struct genapic apic_es7000 = APIC_INIT("es7000", probe_es7000);
diff --git a/include/asm-i386/mach-es7000/mach_apic.h 
b/include/asm-i386/mach-es7000/mach_apic.h
index 8e8b394..2d97892 100644
--- a/include/asm-i386/mach-es7000/mach_apic.h
+++ b/include/asm-i386/mach-es7000/mach_apic.h
@@ -73,13 +73,6 @@ static inline void init_apic_ldr(void)
        apic_write_around(APIC_LDR, val);
 }
 
-extern void es7000_sw_apic(void);
-static inline void enable_apic_mode(void)
-{
-       es7000_sw_apic();
-       return;
-}
-
 extern int apic_version [MAX_APICS];
 static inline void setup_apic_routing(void)
 {
diff --git a/include/asm-i386/mach-es7000/mach_mpparse.h 
b/include/asm-i386/mach-es7000/mach_mpparse.h
index 24990e5..b9fb784 100644
--- a/include/asm-i386/mach-es7000/mach_mpparse.h
+++ b/include/asm-i386/mach-es7000/mach_mpparse.h
@@ -18,18 +18,6 @@ extern int parse_unisys_oem (char *oemptr);
 extern int find_unisys_acpi_oem_table(unsigned long *oem_addr);
 extern void setup_unisys(void);
 
-static inline int mps_oem_check(struct mp_config_table *mpc, char *oem,
-               char *productid)
-{
-       if (mpc->mpc_oemptr) {
-               struct mp_config_oemtable *oem_table =
-                       (struct mp_config_oemtable *)mpc->mpc_oemptr;
-               if (!strncmp(oem, "UNISYS", 6))
-                       return parse_unisys_oem((char *)oem_table);
-       }
-       return 0;
-}
-
 #ifdef CONFIG_ACPI
 
 static inline int es7000_check_dsdt(void)
@@ -41,26 +29,6 @@ static inline int es7000_check_dsdt(void)
                return 1;
        return 0;
 }
-
-/* Hook from generic ACPI tables.c */
-static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id)
-{
-       unsigned long oem_addr;
-       if (!find_unisys_acpi_oem_table(&oem_addr)) {
-               if (es7000_check_dsdt())
-                       return parse_unisys_oem((char *)oem_addr);
-               else {
-                       setup_unisys();
-                       return 1;
-               }
-       }
-       return 0;
-}
-#else
-static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id)
-{
-       return 0;
-}
 #endif
 
 #endif /* __ASM_MACH_MPPARSE_H */
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 65bdfdb..78d659c 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -606,6 +606,7 @@ static int secref_whitelist(const char *modname, const char 
*tosec,
                "_probe",
                "_probe_one",
                "_console",
+               "apic_es7000",
                NULL
        };
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to