*   this pattern.
  *   The pattern is identified by:
  *   tosec   = .init.data
- *   fromsec = .data
+ *   fromsec = .data*
  *   atsym   =__param*
  *
  * Pattern 2:
        /* 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;
        /* 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",
                ".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",