lkml.org 
[lkml]   [2022]   [Jun]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH 6/7] modpost: merge sym_update_namespace() into sym_add_exported()
    On Fri, Jun 10, 2022 at 11:34 AM Masahiro Yamada <masahiroy@kernel.org> 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@kernel.org>

    Thanks for the patch!
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>

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

    \
     
     \ /
      Last update: 2022-06-11 00:28    [W:3.851 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site