From: Matthias Maennich <maennich@google.com>
To: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Jessica Yu <jeyu@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Joel Fernandes <joel@joelfernandes.org>,
Martijn Coenen <maco@android.com>,
Will Deacon <will.deacon@arm.com>, Will Deacon <will@kernel.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/7] module: rename __kstrtab_ns_* to __kstrtabns_* to avoid symbol conflict
Date: Fri, 27 Sep 2019 13:14:57 +0100 [thread overview]
Message-ID: <20190927121457.GC259443@google.com> (raw)
In-Reply-To: <20190927093603.9140-4-yamada.masahiro@socionext.com>
On Fri, Sep 27, 2019 at 06:35:59PM +0900, Masahiro Yamada wrote:
>The module namespace produces __strtab_ns_<sym> symbols to store
>namespace strings, but it does not guarantee the name uniqueness.
>This is a potential problem because we have exported symbols staring
>with "ns_".
>
>For example, kernel/capability.c exports the following symbols:
>
> EXPORT_SYMBOL(ns_capable);
> EXPORT_SYMBOL(capable);
>
>Assume a situation where those are converted as follows:
>
> EXPORT_SYMBOL_NS(ns_capable, some_namespace);
> EXPORT_SYMBOL_NS(capable, some_namespace);
>
>The former expands to "__kstrtab_ns_capable" and "__kstrtab_ns_ns_capable",
>and the latter to "__kstrtab_capable" and "__kstrtab_ns_capable".
>Then, we have the duplication for "__kstrtab_ns_capable".
>
>To ensure the uniqueness, rename "__kstrtab_ns_*" to "__kstrtabns_*".
Again, thanks for catching this!
Reviewed-by: Matthias Maennich <maennich@google.com>
Cheers,
Matthias
>Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
>---
>
> include/linux/export.h | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
>diff --git a/include/linux/export.h b/include/linux/export.h
>index 0695d4e847d9..621158ecd2e2 100644
>--- a/include/linux/export.h
>+++ b/include/linux/export.h
>@@ -55,7 +55,7 @@ extern struct module __this_module;
> "__ksymtab_" #ns NS_SEPARATOR #sym ": \n" \
> " .long " #sym "- . \n" \
> " .long __kstrtab_" #sym "- . \n" \
>- " .long __kstrtab_ns_" #sym "- . \n" \
>+ " .long __kstrtabns_" #sym "- . \n" \
> " .previous \n")
>
> #define __KSYMTAB_ENTRY(sym, sec) \
>@@ -79,7 +79,7 @@ struct kernel_symbol {
> asm("__ksymtab_" #ns NS_SEPARATOR #sym) \
> __attribute__((section("___ksymtab" sec "+" #sym), used)) \
> __aligned(sizeof(void *)) \
>- = { (unsigned long)&sym, __kstrtab_##sym, __kstrtab_ns_##sym }
>+ = { (unsigned long)&sym, __kstrtab_##sym, __kstrtabns_##sym }
>
> #define __KSYMTAB_ENTRY(sym, sec) \
> static const struct kernel_symbol __ksymtab_##sym \
>@@ -112,7 +112,7 @@ struct kernel_symbol {
> /* For every exported symbol, place a struct in the __ksymtab section */
> #define ___EXPORT_SYMBOL_NS(sym, sec, ns) \
> ___export_symbol_common(sym, sec); \
>- static const char __kstrtab_ns_##sym[] \
>+ static const char __kstrtabns_##sym[] \
> __attribute__((section("__ksymtab_strings"), used, aligned(1))) \
> = #ns; \
> __KSYMTAB_ENTRY_NS(sym, sec, ns)
>--
>2.17.1
>
next prev parent reply other threads:[~2019-09-27 12:15 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-27 9:35 [PATCH 0/7] module: various bug-fixes and clean-ups for module namespace Masahiro Yamada
2019-09-27 9:35 ` [PATCH 1/7] modpost: fix broken sym->namespace for external module builds Masahiro Yamada
2019-09-27 9:56 ` Masahiro Yamada
2019-09-27 11:46 ` Matthias Maennich
2019-09-27 9:35 ` [PATCH 2/7] module: swap the order of symbol.namespace Masahiro Yamada
2019-09-27 12:07 ` Matthias Maennich
2019-09-27 9:35 ` [PATCH 3/7] module: rename __kstrtab_ns_* to __kstrtabns_* to avoid symbol conflict Masahiro Yamada
2019-09-27 12:14 ` Matthias Maennich [this message]
2019-09-27 9:36 ` [PATCH 4/7] module: avoid code duplication in include/linux/export.h Masahiro Yamada
2019-09-27 9:58 ` Masahiro Yamada
2019-09-27 11:07 ` Rasmus Villemoes
2019-09-27 12:36 ` Matthias Maennich
2019-10-29 19:19 ` Jessica Yu
2019-10-29 21:11 ` Rasmus Villemoes
2019-10-31 10:13 ` Jessica Yu
2019-10-31 11:03 ` Rasmus Villemoes
2019-10-31 11:26 ` Jessica Yu
2019-09-27 9:36 ` [PATCH 5/7] kbuild: fix build error of 'make nsdeps' in clean tree Masahiro Yamada
2019-09-27 12:44 ` Matthias Maennich
2019-09-27 9:36 ` [PATCH 6/7] nsdeps: fix hashbang of scripts/nsdeps Masahiro Yamada
2019-09-27 13:10 ` Matthias Maennich
2019-09-27 9:36 ` [PATCH 7/7] nsdeps: make generated patches independent of locale Masahiro Yamada
2019-09-27 13:27 ` Matthias Maennich
2019-09-27 15:42 ` Masahiro Yamada
2019-09-27 18:14 ` Greg Kroah-Hartman
2019-09-29 1:18 ` Masahiro Yamada
2019-09-29 1:30 ` Masahiro Yamada
2019-10-01 11:46 ` Matthias Maennich
2019-09-29 10:14 ` Greg Kroah-Hartman
2019-09-27 13:41 ` [PATCH 0/7] module: various bug-fixes and clean-ups for module namespace Matthias Maennich
2019-09-27 15:43 ` Masahiro Yamada
2019-10-02 18:57 ` Jessica Yu
2019-10-02 20:43 ` Matthias Maennich
2019-10-03 1:26 ` Masahiro Yamada
2019-10-03 8:03 ` Masahiro Yamada
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190927121457.GC259443@google.com \
--to=maennich@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=jeyu@kernel.org \
--cc=joel@joelfernandes.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maco@android.com \
--cc=will.deacon@arm.com \
--cc=will@kernel.org \
--cc=yamada.masahiro@socionext.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).