Re: [PATCH] Update num_symtab, symtab and strtab right after setupof core_num_syms, core_symtab and core_strtab.

From: AmÃrico Wang
Date: Mon Sep 27 2010 - 04:05:34 EST


On Mon, Sep 27, 2010 at 03:30:28PM +0800, Hu Tao wrote:
>Signed-off-by: Hu Tao <hutao@xxxxxxxxxxxxxx>


Changelog is empty.
What bug did you observe?

>---
> 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;


This patch is not correct, symbols that are not core symbols will be
dropped right after this piece of code. So NACK.
--
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/