diff options
author | John W. Linville <linville@tuxdriver.com> | 2006-06-13 15:38:11 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2006-06-13 15:38:11 -0400 |
commit | 76df73ff90e99681a99e457aec4cfe0a240b7982 (patch) | |
tree | 0a6302b1a8e5d11aeed8aa49f7e846f35aad4f5a /arch/mips/kernel/module.c | |
parent | 5c601d0c942f5aaf7f3cff7e08f61047d70a964e (diff) | |
parent | 86bc843a268058df558844b6bf64531617fbc698 (diff) |
Merge branch 'from-linus' into upstream
Diffstat (limited to 'arch/mips/kernel/module.c')
-rw-r--r-- | arch/mips/kernel/module.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/mips/kernel/module.c b/arch/mips/kernel/module.c index e54a7f442f8..d7bf0215bc1 100644 --- a/arch/mips/kernel/module.c +++ b/arch/mips/kernel/module.c @@ -288,6 +288,9 @@ int apply_relocate(Elf_Shdr *sechdrs, const char *strtab, sym = (Elf_Sym *)sechdrs[symindex].sh_addr + ELF_MIPS_R_SYM(rel[i]); if (!sym->st_value) { + /* Ignore unresolved weak symbol */ + if (ELF_ST_BIND(sym->st_info) == STB_WEAK) + continue; printk(KERN_WARNING "%s: Unknown symbol %s\n", me->name, strtab + sym->st_name); return -ENOENT; @@ -325,6 +328,9 @@ int apply_relocate_add(Elf_Shdr *sechdrs, const char *strtab, sym = (Elf_Sym *)sechdrs[symindex].sh_addr + ELF_MIPS_R_SYM(rel[i]); if (!sym->st_value) { + /* Ignore unresolved weak symbol */ + if (ELF_ST_BIND(sym->st_info) == STB_WEAK) + continue; printk(KERN_WARNING "%s: Unknown symbol %s\n", me->name, strtab + sym->st_name); return -ENOENT; |