From: Matthias Maennich <maennich@google.com> To: Jessica Yu <jeyu@kernel.org> Cc: Matthew Dharm <mdharm-usb@one-eyed-alien.net>, Guenter Roeck <linux@roeck-us.net>, Masahiro Yamada <yamada.masahiro@socionext.com>, Linux Kernel Mailing List <linux-kernel@vger.kernel.org>, Android Kernel Team <kernel-team@android.com>, Arnd Bergmann <arnd@arndb.de>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, "Joel Fernandes (Google)" <joel@joelfernandes.org>, Lucas De Marchi <lucas.de.marchi@gmail.com>, maco@android.com, sspatil@google.com, Will Deacon <will@kernel.org>, Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>, linux-modules@vger.kernel.org, linux-usb <linux-usb@vger.kernel.org>, USB Mass Storage on Linux <usb-storage@lists.one-eyed-alien.net>, linux-watchdog@vger.kernel.org Subject: Re: [usb-storage] Re: [PATCH v4 12/12] RFC: watchdog: export core symbols in WATCHDOG_CORE namespace Date: Thu, 5 Sep 2019 12:25:41 +0100 Message-ID: <20190905112541.GA227928@google.com> (raw) In-Reply-To: <20190905104147.GA27788@linux-8ccs> On Thu, Sep 05, 2019 at 12:41:47PM +0200, Jessica Yu wrote: >+++ Matthew Dharm [04/09/19 09:16 -0700]: >>On Wed, Sep 4, 2019 at 5:12 AM Guenter Roeck <linux@roeck-us.net> wrote: >>> >>>Note that I don't object to the patch set in general. There may be symbols >>>which only need be exported in the context of a single subsystem or even >>>driver (if a driver consists of more than one module). For example, a mfd >>>driver may export symbols which should only be called by its client drivers. >>>In such a situation, it may well be beneficial to limit the use of exported >>>symbols. >> >>I can appreciate this benefit. >> >>>I am not sure what good that does in practice (if I understand correctly, >>>a driver only has to declare that it wants to use a restricted use symbol >>>if it wants to use it), but that is a different question. >> >>I think this question implies that you are coming from the perspective >>of "security" or wanting to restrict access to the underlying >>functions, rather than wanting to clean-up the way symbols are handled >>for manageability / maintainability purposes (which is the goal, as I >>understand it). The goal of this patch set is to introduce structure into the exported surface that goes beyond naming conventions like 'usb_*'. So, it is rather about maintainability then security. In particular, creating the visibility of which parts of the kernel use which other parts, might help to find cases where suboptimal choices were made. Maybe already during development/review. As Guenter correctly noted, a module is able to declare that it wants to use a namespace. One idea that came up earlier was to maybe restrict the namespaces that can actually be imported by modules. But I would see anything in that direction as beyond the scope of this series. A nice side effect of having to declare the usage is that it shows up in modinfo and module users can reason about how the module interacts with the rest of the kernel. >>HOWEVER, I have one question: If these patches are included, and >>someone wants to introduce a bit of code which needs to use two >>symbols from different namespaces but with the same name, can that be >>done? That is, if driver A has symbol 'foo' and driver B has symbol >>'foo' (both in their respective namespaces), and driver C wants to use >>A.foo and B.foo, can that be supported? > >As of now, we currently don't support this - modpost will warn if a >symbol is exported more than once (across modules + vmlinux), and the >module loader currently assumes exported symbol names are unique. Do >you have a concrete use case? If there is a strong need for this, I >don't think it'd be too hard to implement. The implementation does not change the fact that symbol names need to be unique. As Arnd just mentioned in the other thread: the linker will already fail if two builtin symbols use the same name. It is rather a tag attached to the symbol. Cheers, Matthias
next prev parent reply index Thread overview: 107+ messages / expand[flat|nested] mbox.gz Atom feed top [not found] <20180716122125.175792-1-maco@android.com> [not found] ` <20180716122125.175792-3-maco@android.com> [not found] ` <CAB0TPYEOVHcFGFLTjVvk7R0VSgSnXZRi1PjSYXONJSjqd4NewQ@mail.gmail.com> [not found] ` <20180725155507.umb5oatduquxwlmt@linux-8ccs> 2018-07-25 16:48 ` [PATCH 2/6] module: add support for symbol namespaces Lucas De Marchi 2018-07-26 7:44 ` Martijn Coenen 2019-08-13 12:16 ` [PATCH v2 0/10] Symbol namespaces - RFC Matthias Maennich 2019-08-13 12:16 ` [PATCH v2 01/10] module: support reading multiple values per modinfo tag Matthias Maennich 2019-08-13 12:40 ` Greg KH 2019-08-13 12:16 ` [PATCH v2 02/10] export: explicitly align struct kernel_symbol Matthias Maennich 2019-08-13 12:41 ` Greg KH 2019-08-13 12:17 ` [PATCH v2 03/10] module: add support for symbol namespaces Matthias Maennich 2019-08-13 15:26 ` Greg KH 2019-08-13 12:17 ` [PATCH v2 04/10] modpost: " Matthias Maennich 2019-08-13 15:27 ` Greg KH 2019-08-13 12:17 ` [PATCH v2 05/10] module: add config option MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS Matthias Maennich 2019-08-13 18:17 ` Greg KH 2019-08-13 20:15 ` Saravana Kannan 2019-08-14 12:54 ` Matthias Maennich 2019-08-14 17:34 ` Saravana Kannan 2019-08-13 12:17 ` [PATCH v2 06/10] export: allow definition default namespaces in Makefiles or sources Matthias Maennich 2019-08-13 18:16 ` Greg KH 2019-08-13 18:16 ` Greg KH 2019-08-13 12:17 ` [PATCH v2 07/10] modpost: add support for generating namespace dependencies Matthias Maennich 2019-08-13 18:21 ` Greg KH 2019-08-13 12:17 ` [PATCH v2 08/10] scripts: Coccinelle script for " Matthias Maennich 2019-08-13 12:31 ` Julia Lawall 2019-08-13 12:44 ` Greg KH 2019-08-14 6:36 ` [Cocci] " Himanshu Jha 2019-08-14 8:03 ` Matthias Maennich 2019-08-14 12:00 ` [v2 " Markus Elfring 2019-08-15 13:50 ` Markus Elfring 2019-08-22 9:18 ` Matthias Maennich 2019-08-22 11:00 ` Markus Elfring 2019-08-13 12:17 ` [PATCH v2 09/10] usb-storage: remove single-use define for debugging Matthias Maennich 2019-08-13 12:42 ` Greg KH 2019-08-13 13:12 ` Greg KH 2019-08-13 12:17 ` [PATCH v2 10/10] RFC: usb-storage: export symbols in USB_STORAGE namespace Matthias Maennich 2019-08-13 12:45 ` Greg KH 2019-08-13 12:47 ` Greg KH 2019-08-13 15:02 ` Matthias Maennich [not found] ` <20190821114955.12788-1-maennich@google.com> 2019-08-21 11:49 ` [PATCH v3 01/11] module: support reading multiple values per modinfo tag Matthias Maennich 2019-08-21 11:49 ` [PATCH v3 02/11] export: explicitly align struct kernel_symbol Matthias Maennich 2019-08-21 11:49 ` [PATCH v3 03/11] module: add support for symbol namespaces Matthias Maennich 2019-08-27 15:37 ` Jessica Yu 2019-08-27 16:04 ` Matthias Maennich 2019-08-21 11:49 ` [PATCH v3 04/11] modpost: " Matthias Maennich 2019-08-26 16:21 ` Jessica Yu 2019-08-27 14:41 ` Matthias Maennich 2019-08-28 9:43 ` Jessica Yu 2019-08-28 9:55 ` Matthias Maennich 2019-08-28 10:16 ` Jessica Yu 2019-08-21 11:49 ` [PATCH v3 05/11] module: add config option MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS Matthias Maennich 2019-08-21 11:49 ` [PATCH v3 06/11] export: allow definition default namespaces in Makefiles or sources Matthias Maennich 2019-08-28 10:49 ` Jessica Yu 2019-08-28 10:56 ` Matthias Maennich 2019-08-21 11:49 ` [PATCH v3 07/11] modpost: add support for generating namespace dependencies Matthias Maennich 2019-08-21 11:49 ` [PATCH v3 08/11] scripts: Coccinelle script for " Matthias Maennich 2019-08-22 6:09 ` [v3 " Markus Elfring 2019-08-29 12:13 ` [PATCH v3 " Jessica Yu 2019-08-21 11:49 ` [PATCH v3 09/11] usb-storage: remove single-use define for debugging Matthias Maennich 2019-08-21 12:37 ` Greg KH 2019-08-21 13:21 ` Thomas Gleixner 2019-08-21 13:32 ` Greg KH 2019-08-21 11:49 ` [PATCH v3 10/11] RFC: usb-storage: export symbols in USB_STORAGE namespace Matthias Maennich 2019-08-21 12:38 ` Greg KH 2019-08-21 14:36 ` Jessica Yu 2019-08-21 23:13 ` Christoph Hellwig 2019-08-22 8:32 ` Matthias Maennich 2019-09-03 15:06 ` [PATCH v4 00/12] Symbol Namespaces Matthias Maennich 2019-09-03 15:06 ` [PATCH v4 01/12] module: support reading multiple values per modinfo tag Matthias Maennich 2019-09-03 15:06 ` [PATCH v4 02/12] export: explicitly align struct kernel_symbol Matthias Maennich 2019-09-03 15:06 ` [PATCH v4 03/12] module: add support for symbol namespaces Matthias Maennich 2019-09-03 15:06 ` [PATCH v4 04/12] modpost: " Matthias Maennich 2019-09-03 15:06 ` [PATCH v4 05/12] module: add config option MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS Matthias Maennich 2019-09-03 15:06 ` [PATCH v4 06/12] export: allow definition default namespaces in Makefiles or sources Matthias Maennich 2019-09-03 15:06 ` [PATCH v4 07/12] modpost: add support for generating namespace dependencies Matthias Maennich 2019-09-03 15:06 ` [PATCH v4 08/12] scripts: Coccinelle script for " Matthias Maennich 2019-09-04 9:53 ` Masahiro Yamada 2019-09-05 14:46 ` Matthias Maennich 2019-09-03 15:06 ` [PATCH v4 09/12] docs: Add documentation for Symbol Namespaces Matthias Maennich 2019-09-04 7:16 ` Greg KH 2019-09-03 15:06 ` [PATCH v4 10/12] usb-storage: remove single-use define for debugging Matthias Maennich 2019-09-03 15:06 ` [PATCH v4 11/12] RFC: usb-storage: export symbols in USB_STORAGE namespace Matthias Maennich 2019-09-03 15:06 ` [PATCH v4 12/12] RFC: watchdog: export core symbols in WATCHDOG_CORE namespace Matthias Maennich 2019-09-03 16:10 ` Guenter Roeck 2019-09-04 8:45 ` Masahiro Yamada 2019-09-04 12:12 ` Guenter Roeck 2019-09-04 16:16 ` [usb-storage] " Matthew Dharm 2019-09-05 10:41 ` Jessica Yu 2019-09-05 10:52 ` Arnd Bergmann 2019-09-05 11:16 ` Jessica Yu 2019-09-05 11:25 ` Masahiro Yamada 2019-09-05 12:00 ` Greg Kroah-Hartman 2019-09-05 11:25 ` Matthias Maennich [this message] 2019-09-04 9:37 ` [PATCH v4 00/12] Symbol Namespaces Masahiro Yamada 2019-09-06 10:32 ` [PATCH v5 00/11] " Matthias Maennich 2019-09-06 10:32 ` [PATCH v5 01/11] module: support reading multiple values per modinfo tag Matthias Maennich 2019-09-06 10:32 ` [PATCH v5 02/11] export: explicitly align struct kernel_symbol Matthias Maennich 2019-09-06 10:32 ` [PATCH v5 03/11] module: add support for symbol namespaces Matthias Maennich 2019-09-06 10:32 ` [PATCH v5 04/11] modpost: " Matthias Maennich 2019-09-06 10:32 ` [PATCH v5 05/11] module: add config option MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS Matthias Maennich 2019-09-06 10:32 ` [PATCH v5 06/11] export: allow definition default namespaces in Makefiles or sources Matthias Maennich 2019-09-06 10:32 ` [PATCH v5 07/11] modpost: add support for generating namespace dependencies Matthias Maennich 2019-09-06 10:32 ` [PATCH v5 08/11] scripts: Coccinelle script for " Matthias Maennich 2019-09-06 10:32 ` [PATCH v5 09/11] docs: Add documentation for Symbol Namespaces Matthias Maennich 2019-09-06 10:32 ` [PATCH v5 10/11] usb-storage: remove single-use define for debugging Matthias Maennich 2019-09-06 12:59 ` Jessica Yu 2019-09-06 13:22 ` Greg KH 2019-09-06 10:32 ` [PATCH v5 11/11] usb-storage: export symbols in USB_STORAGE namespace Matthias Maennich 2019-09-09 8:35 ` [PATCH v5 00/11] Symbol Namespaces Jessica Yu
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=20190905112541.GA227928@google.com \ --to=maennich@google.com \ --cc=arnd@arndb.de \ --cc=gregkh@linuxfoundation.org \ --cc=jeyu@kernel.org \ --cc=joel@joelfernandes.org \ --cc=kernel-team@android.com \ --cc=linux-kbuild@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-modules@vger.kernel.org \ --cc=linux-usb@vger.kernel.org \ --cc=linux-watchdog@vger.kernel.org \ --cc=linux@roeck-us.net \ --cc=lucas.de.marchi@gmail.com \ --cc=maco@android.com \ --cc=mdharm-usb@one-eyed-alien.net \ --cc=sspatil@google.com \ --cc=usb-storage@lists.one-eyed-alien.net \ --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
Linux-Modules Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-modules/0 linux-modules/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-modules linux-modules/ https://lore.kernel.org/linux-modules \ linux-modules@vger.kernel.org public-inbox-index linux-modules Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-modules AGPL code for this site: git clone https://public-inbox.org/public-inbox.git