On Fri, Jun 10, 2022 at 11:34 AM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote: > > Pass a set of the name, license, and namespace to sym_add_exported(). > > sym_update_namespace() is unneeded. > > Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx> Thanks for the patch! Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> > --- > > scripts/mod/modpost.c | 41 +++++++++-------------------------------- > 1 file changed, 9 insertions(+), 32 deletions(-) > > diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c > index f738dddde7b8..0db2cbb74a2a 100644 > --- a/scripts/mod/modpost.c > +++ b/scripts/mod/modpost.c > @@ -357,26 +357,8 @@ static const char *sec_name_of_symbol(const struct elf_info *info, > > #define strstarts(str, prefix) (strncmp(str, prefix, strlen(prefix)) == 0) > > -static void sym_update_namespace(const char *symname, const char *namespace) > -{ > - struct symbol *s = find_symbol(symname); > - > - /* > - * That symbol should have been created earlier and thus this is > - * actually an assertion. > - */ > - if (!s) { > - error("Could not update namespace(%s) for symbol %s\n", > - namespace, symname); > - return; > - } > - > - free(s->namespace); > - s->namespace = namespace[0] ? NOFAIL(strdup(namespace)) : NULL; > -} > - > static struct symbol *sym_add_exported(const char *name, struct module *mod, > - bool gpl_only) > + bool gpl_only, const char *namespace) > { > struct symbol *s = find_symbol(name); > > @@ -389,6 +371,7 @@ static struct symbol *sym_add_exported(const char *name, struct module *mod, > s = alloc_symbol(name); > s->module = mod; > s->is_gpl_only = gpl_only; > + s->namespace = namespace[0] ? NOFAIL(strdup(namespace)) : NULL; > list_add_tail(&s->list, &mod->exported_symbols); > hash_add_symbol(s); > > @@ -658,17 +641,12 @@ static void handle_symbol(struct module *mod, struct elf_info *info, > break; > default: > if (sym->st_shndx == info->export_symbol_sec) { > - const char *name; > - > - if (strstarts(symname, "__export_symbol_gpl.")) { > - name = symname + strlen("__export_symbol_gpl."); > - sym_add_exported(name, mod, true); > - sym_update_namespace(name, sym_get_data(info, sym)); > - } else if (strstarts(symname, "__export_symbol.")) { > - name = symname + strlen("__export_symbol."); > - sym_add_exported(name, mod, false); > - sym_update_namespace(name, sym_get_data(info, sym)); > - } > + if (strstarts(symname, "__export_symbol_gpl.")) > + sym_add_exported(symname + strlen("__export_symbol_gpl."), > + mod, true, sym_get_data(info, sym)); > + else if (strstarts(symname, "__export_symbol.")) > + sym_add_exported(symname + strlen("__export_symbol."), > + mod, false, sym_get_data(info, sym)); > > break; > } > @@ -2470,9 +2448,8 @@ static void read_dump(const char *fname) > mod = new_module(modname, strlen(modname)); > mod->from_dump = true; > } > - s = sym_add_exported(symname, mod, gpl_only); > + s = sym_add_exported(symname, mod, gpl_only, namespace); > sym_set_crc(s, crc); > - sym_update_namespace(symname, namespace); > } > free(buf); > return; > -- > 2.32.0 > -- Thanks, ~Nick Desaulniers