aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/module.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/kernel/module.c b/kernel/module.c
index 1a9a3986b136..f6e08b7cff7c 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -1673,8 +1673,7 @@ static void layout_sections(struct module *mod,
1673 if ((s->sh_flags & masks[m][0]) != masks[m][0] 1673 if ((s->sh_flags & masks[m][0]) != masks[m][0]
1674 || (s->sh_flags & masks[m][1]) 1674 || (s->sh_flags & masks[m][1])
1675 || s->sh_entsize != ~0UL 1675 || s->sh_entsize != ~0UL
1676 || strncmp(secstrings + s->sh_name, 1676 || strstarts(secstrings + s->sh_name, ".init"))
1677 ".init", 5) == 0)
1678 continue; 1677 continue;
1679 s->sh_entsize = get_offset(mod, &mod->core_size, s, i); 1678 s->sh_entsize = get_offset(mod, &mod->core_size, s, i);
1680 DEBUGP("\t%s\n", secstrings + s->sh_name); 1679 DEBUGP("\t%s\n", secstrings + s->sh_name);
@@ -1691,8 +1690,7 @@ static void layout_sections(struct module *mod,
1691 if ((s->sh_flags & masks[m][0]) != masks[m][0] 1690 if ((s->sh_flags & masks[m][0]) != masks[m][0]
1692 || (s->sh_flags & masks[m][1]) 1691 || (s->sh_flags & masks[m][1])
1693 || s->sh_entsize != ~0UL 1692 || s->sh_entsize != ~0UL
1694 || strncmp(secstrings + s->sh_name, 1693 || !strstarts(secstrings + s->sh_name, ".init"))
1695 ".init", 5) != 0)
1696 continue; 1694 continue;
1697 s->sh_entsize = (get_offset(mod, &mod->init_size, s, i) 1695 s->sh_entsize = (get_offset(mod, &mod->init_size, s, i)
1698 | INIT_OFFSET_MASK); 1696 | INIT_OFFSET_MASK);
@@ -1825,8 +1823,7 @@ static char elf_type(const Elf_Sym *sym,
1825 else 1823 else
1826 return 'b'; 1824 return 'b';
1827 } 1825 }
1828 if (strncmp(secstrings + sechdrs[sym->st_shndx].sh_name, 1826 if (strstarts(secstrings + sechdrs[sym->st_shndx].sh_name, ".debug"))
1829 ".debug", strlen(".debug")) == 0)
1830 return 'n'; 1827 return 'n';
1831 return '?'; 1828 return '?';
1832} 1829}
@@ -1952,7 +1949,7 @@ static noinline struct module *load_module(void __user *umod,
1952 } 1949 }
1953#ifndef CONFIG_MODULE_UNLOAD 1950#ifndef CONFIG_MODULE_UNLOAD
1954 /* Don't load .exit sections */ 1951 /* Don't load .exit sections */
1955 if (strncmp(secstrings+sechdrs[i].sh_name, ".exit", 5) == 0) 1952 if (strstarts(secstrings+sechdrs[i].sh_name, ".exit"))
1956 sechdrs[i].sh_flags &= ~(unsigned long)SHF_ALLOC; 1953 sechdrs[i].sh_flags &= ~(unsigned long)SHF_ALLOC;
1957#endif 1954#endif
1958 /* Don't keep __versions around; it's just for loading. */ 1955 /* Don't keep __versions around; it's just for loading. */