Re: [PATCH 3/4] symbol namespaces: revert to previous __ksymtab name scheme

From: Masahiro Yamada
Date: Fri Oct 11 2019 - 23:37:22 EST

On Fri, Oct 11, 2019 at 12:16 AM Matthias Maennich <maennich@xxxxxxxxxx> wrote:
> The introduction Symbol Namespaces changed the naming schema of the
> __ksymtab entries from __kysmtab__symbol to __ksymtab_NAMESPACE.symbol.
> That caused some breakages in tools that depend on the name layout in
> either the binaries(vmlinux,*.ko) or in E.g. kmod's depmod
> would not be able to read without a patch to support symbol
> namespaces. A warning reported by depmod for namespaced symbols would
> look like
> depmod: WARNING: [...]/uas.ko needs unknown symbol usb_stor_adjust_quirks
> In order to address this issue, revert to the original naming scheme and
> rather read the __kstrtabns_<symbol> entries and their corresponding
> values from __ksymtab_strings to update the namespace values for
> symbols. After having read all symbols and handled them in
> handle_modversions(), the symbols are created. In a second pass, read
> the __kstrtabns_ entries and update the namespaces accordingly.
> Suggested-by: Jessica Yu <jeyu@xxxxxxxxxx>
> Fixes: 8651ec01daed ("module: add support for symbol namespaces.")
> Signed-off-by: Matthias Maennich <maennich@xxxxxxxxxx>

According to
was this problem reported by Stefan?
Reported-by: Stefan Wahren <stefan.wahren@xxxxxxxx>

BTW, I initially suggested this way of fixing.
Suggested-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>

> @@ -74,9 +72,8 @@ struct kernel_symbol {
> int namespace_offset;
> };
> #else
> -#define __KSYMTAB_ENTRY_NS(sym, sec, ns) \
> - static const struct kernel_symbol __ksymtab_##sym##__##ns \
> - asm("__ksymtab_" #ns NS_SEPARATOR #sym) \

For consistency, you could also delete asm("__ksymtab_" #sym)
by this patch instead of by 4/4.

Not a big deal, though.

Reviewed-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>

Best Regards
Masahiro Yamada