From 19fcbc6613c9a79c889beead69a14d027eb805cb Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 25 Sep 2009 00:32:58 -0600 Subject: [PATCH] --- yaml --- r: 165929 b: refs/heads/master c: a263f7763c364015f92e7c097fa46c6673f6fcb0 h: refs/heads/master i: 165927: e7efc7b0fd8e20809efe43f1bef3431d386fce90 v: v3 --- [refs] | 2 +- trunk/kernel/module.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 1544feac22ef..a66bfb1fb828 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1d7015caa082d465faeae5d6fd1be077ee6dfa87 +refs/heads/master: a263f7763c364015f92e7c097fa46c6673f6fcb0 diff --git a/trunk/kernel/module.c b/trunk/kernel/module.c index 39827c3d9484..c54f10d90e1c 100644 --- a/trunk/kernel/module.c +++ b/trunk/kernel/module.c @@ -1797,6 +1797,17 @@ static void setup_modinfo(struct module *mod, Elf_Shdr *sechdrs, } } +static void free_modinfo(struct module *mod) +{ + struct module_attribute *attr; + int i; + + for (i = 0; (attr = modinfo_attrs[i]); i++) { + if (attr->free) + attr->free(mod); + } +} + #ifdef CONFIG_KALLSYMS /* lookup symbol in given range of kernel_symbols */ @@ -2506,6 +2517,7 @@ static noinline struct module *load_module(void __user *umod, synchronize_sched(); module_arch_cleanup(mod); cleanup: + free_modinfo(mod); kobject_del(&mod->mkobj.kobj); kobject_put(&mod->mkobj.kobj); free_unload: