Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 211264
b: refs/heads/master
c: 5336377
h: refs/heads/master
v: v3
  • Loading branch information
Linus Torvalds committed Oct 5, 2010
1 parent dd93277 commit babd964
Show file tree
Hide file tree
Showing 12 changed files with 15 additions and 27 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2f6b3aa7a563d05453c4d73ccf88191aee84333f
refs/heads/master: 5336377d6225959624146629ce3fc88ee8ecda3d
3 changes: 1 addition & 2 deletions trunk/arch/avr32/kernel/module.c
Original file line number Diff line number Diff line change
Expand Up @@ -314,10 +314,9 @@ int module_finalize(const Elf_Ehdr *hdr, const Elf_Shdr *sechdrs,
vfree(module->arch.syminfo);
module->arch.syminfo = NULL;

return module_bug_finalize(hdr, sechdrs, module);
return 0;
}

void module_arch_cleanup(struct module *module)
{
module_bug_cleanup(module);
}
3 changes: 1 addition & 2 deletions trunk/arch/h8300/kernel/module.c
Original file line number Diff line number Diff line change
Expand Up @@ -112,10 +112,9 @@ int module_finalize(const Elf_Ehdr *hdr,
const Elf_Shdr *sechdrs,
struct module *me)
{
return module_bug_finalize(hdr, sechdrs, me);
return 0;
}

void module_arch_cleanup(struct module *mod)
{
module_bug_cleanup(mod);
}
3 changes: 1 addition & 2 deletions trunk/arch/mn10300/kernel/module.c
Original file line number Diff line number Diff line change
Expand Up @@ -206,13 +206,12 @@ int module_finalize(const Elf_Ehdr *hdr,
const Elf_Shdr *sechdrs,
struct module *me)
{
return module_bug_finalize(hdr, sechdrs, me);
return 0;
}

/*
* finish clearing the module
*/
void module_arch_cleanup(struct module *mod)
{
module_bug_cleanup(mod);
}
3 changes: 1 addition & 2 deletions trunk/arch/parisc/kernel/module.c
Original file line number Diff line number Diff line change
Expand Up @@ -941,11 +941,10 @@ int module_finalize(const Elf_Ehdr *hdr,
nsyms = newptr - (Elf_Sym *)symhdr->sh_addr;
DEBUGP("NEW num_symtab %lu\n", nsyms);
symhdr->sh_size = nsyms * sizeof(Elf_Sym);
return module_bug_finalize(hdr, sechdrs, me);
return 0;
}

void module_arch_cleanup(struct module *mod)
{
deregister_unwind_table(mod);
module_bug_cleanup(mod);
}
5 changes: 0 additions & 5 deletions trunk/arch/powerpc/kernel/module.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,6 @@ int module_finalize(const Elf_Ehdr *hdr,
const Elf_Shdr *sect;
int err;

err = module_bug_finalize(hdr, sechdrs, me);
if (err)
return err;

/* Apply feature fixups */
sect = find_section(hdr, sechdrs, "__ftr_fixup");
if (sect != NULL)
Expand Down Expand Up @@ -101,5 +97,4 @@ int module_finalize(const Elf_Ehdr *hdr,

void module_arch_cleanup(struct module *mod)
{
module_bug_cleanup(mod);
}
3 changes: 1 addition & 2 deletions trunk/arch/s390/kernel/module.c
Original file line number Diff line number Diff line change
Expand Up @@ -407,10 +407,9 @@ int module_finalize(const Elf_Ehdr *hdr,
{
vfree(me->arch.syminfo);
me->arch.syminfo = NULL;
return module_bug_finalize(hdr, sechdrs, me);
return 0;
}

void module_arch_cleanup(struct module *mod)
{
module_bug_cleanup(mod);
}
2 changes: 0 additions & 2 deletions trunk/arch/sh/kernel/module.c
Original file line number Diff line number Diff line change
Expand Up @@ -149,13 +149,11 @@ int module_finalize(const Elf_Ehdr *hdr,
int ret = 0;

ret |= module_dwarf_finalize(hdr, sechdrs, me);
ret |= module_bug_finalize(hdr, sechdrs, me);

return ret;
}

void module_arch_cleanup(struct module *mod)
{
module_bug_cleanup(mod);
module_dwarf_cleanup(mod);
}
3 changes: 1 addition & 2 deletions trunk/arch/x86/kernel/module.c
Original file line number Diff line number Diff line change
Expand Up @@ -239,11 +239,10 @@ int module_finalize(const Elf_Ehdr *hdr,
apply_paravirt(pseg, pseg + para->sh_size);
}

return module_bug_finalize(hdr, sechdrs, me);
return 0;
}

void module_arch_cleanup(struct module *mod)
{
alternatives_smp_module_del(mod);
module_bug_cleanup(mod);
}
5 changes: 2 additions & 3 deletions trunk/include/linux/module.h
Original file line number Diff line number Diff line change
Expand Up @@ -686,17 +686,16 @@ extern int module_sysfs_initialized;


#ifdef CONFIG_GENERIC_BUG
int module_bug_finalize(const Elf_Ehdr *, const Elf_Shdr *,
void module_bug_finalize(const Elf_Ehdr *, const Elf_Shdr *,
struct module *);
void module_bug_cleanup(struct module *);

#else /* !CONFIG_GENERIC_BUG */

static inline int module_bug_finalize(const Elf_Ehdr *hdr,
static inline void module_bug_finalize(const Elf_Ehdr *hdr,
const Elf_Shdr *sechdrs,
struct module *mod)
{
return 0;
}
static inline void module_bug_cleanup(struct module *mod) {}
#endif /* CONFIG_GENERIC_BUG */
Expand Down
4 changes: 4 additions & 0 deletions trunk/kernel/module.c
Original file line number Diff line number Diff line change
Expand Up @@ -1537,6 +1537,7 @@ static int __unlink_module(void *_mod)
{
struct module *mod = _mod;
list_del(&mod->list);
module_bug_cleanup(mod);
return 0;
}

Expand Down Expand Up @@ -2625,6 +2626,7 @@ static struct module *load_module(void __user *umod,
if (err < 0)
goto ddebug;

module_bug_finalize(info.hdr, info.sechdrs, mod);
list_add_rcu(&mod->list, &modules);
mutex_unlock(&module_mutex);

Expand All @@ -2650,6 +2652,8 @@ static struct module *load_module(void __user *umod,
mutex_lock(&module_mutex);
/* Unlink carefully: kallsyms could be walking list. */
list_del_rcu(&mod->list);
module_bug_cleanup(mod);

ddebug:
if (!mod->taints)
dynamic_debug_remove(info.debug);
Expand Down
6 changes: 2 additions & 4 deletions trunk/lib/bug.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ static const struct bug_entry *module_find_bug(unsigned long bugaddr)
return NULL;
}

int module_bug_finalize(const Elf_Ehdr *hdr, const Elf_Shdr *sechdrs,
struct module *mod)
void module_bug_finalize(const Elf_Ehdr *hdr, const Elf_Shdr *sechdrs,
struct module *mod)
{
char *secstrings;
unsigned int i;
Expand All @@ -97,8 +97,6 @@ int module_bug_finalize(const Elf_Ehdr *hdr, const Elf_Shdr *sechdrs,
* could potentially lead to deadlock and thus be counter-productive.
*/
list_add(&mod->bug_list, &module_bug_list);

return 0;
}

void module_bug_cleanup(struct module *mod)
Expand Down

0 comments on commit babd964

Please sign in to comment.