diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 5de3c63091e9fb9a001de0b50789fde7a4c01d42..c4dc1d72d02efad6d21a943a66fd79f4154d8934 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -483,7 +483,7 @@ static int strrcmp(const char *s, const char *sub) * this pattern. * The pattern is identified by: * tosec = .init.data - * fromsec = .data + * fromsec = .data* * atsym =__param* * * Pattern 2: @@ -512,7 +512,7 @@ static int secref_whitelist(const char *tosec, const char *fromsec, /* Check for pattern 1 */ if (strcmp(tosec, ".init.data") != 0) f1 = 0; - if (strcmp(fromsec, ".data") != 0) + if (strncmp(fromsec, ".data", strlen(".data")) != 0) f1 = 0; if (strncmp(atsym, "__param", strlen("__param")) != 0) f1 = 0; @@ -743,9 +743,12 @@ static int init_section_ref_ok(const char *name) /* Absolute section names */ const char *namelist1[] = { ".init", + ".opd", /* see comment [OPD] at exit_section_ref_ok() */ + ".toc1", /* used by ppc64 */ ".stab", ".rodata", ".text.lock", + "__bug_table", /* used by powerpc for BUG() */ ".pci_fixup_header", ".pci_fixup_final", ".pdr", @@ -812,8 +815,10 @@ static int exit_section_ref_ok(const char *name) ".exit.data", ".init.text", ".opd", /* See comment [OPD] */ + ".toc1", /* used by ppc64 */ ".altinstructions", ".pdr", + "__bug_table", /* used by powerpc for BUG() */ ".exitcall.exit", ".eh_frame", ".stab",