Re: [PATCH resend] Update num_symtab, symtab and strtab right aftersetup of core_num_syms, core_symtab and core_strtab.

From: Hu Tao
Date: Tue Sep 28 2010 - 02:02:19 EST


Negative. Sorry for noise.

On Tue, Sep 28, 2010 at 09:06:28AM +0800, Hu Tao wrote:
> symtab/strtab refer to memory that will be vfreed when load_module() is
> done. So update them early.
>
> Signed-off-by: Hu Tao <hutao@xxxxxxxxxxxxxx>
> ---
> kernel/module.c | 9 ++++-----
> 1 files changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/kernel/module.c b/kernel/module.c
> index d0b5f8d..d5dc98b 100644
> --- a/kernel/module.c
> +++ b/kernel/module.c
> @@ -2029,6 +2029,10 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
> for (*s = 0, i = 1; i < info->sechdrs[info->index.str].sh_size; ++i)
> if (test_bit(i, info->strmap))
> *++s = mod->strtab[i];
> +
> + mod->num_symtab = mod->core_num_syms;
> + mod->symtab = mod->core_symtab;
> + mod->strtab = mod->core_strtab;
> }
> #else
> static inline void layout_symtab(struct module *mod, struct load_info *info)
> @@ -2738,11 +2742,6 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
> /* Drop initial reference. */
> module_put(mod);
> trim_init_extable(mod);
> -#ifdef CONFIG_KALLSYMS
> - mod->num_symtab = mod->core_num_syms;
> - mod->symtab = mod->core_symtab;
> - mod->strtab = mod->core_strtab;
> -#endif
> module_free(mod, mod->module_init);
> mod->module_init = NULL;
> mod->init_size = 0;
> --
> 1.7.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/