On Wed, Aug 14, 2019 at 5:54 AM 'Matthias Maennich' via kernel-team <kernel-team@xxxxxxxxxxx> wrote: > > On Tue, Aug 13, 2019 at 01:15:44PM -0700, Saravana Kannan wrote: > >On Tue, Aug 13, 2019 at 5:19 AM 'Matthias Maennich' via kernel-team > ><kernel-team@xxxxxxxxxxx> wrote: > >> > >> If MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is enabled (default=n), the > >> requirement for modules to import all namespaces that are used by > >> the module is relaxed. > >> > >> Enabling this option effectively allows (invalid) modules to be loaded > >> while only a warning is emitted. > >> > >> Disabling this option keeps the enforcement at module loading time and > >> loading is denied if the module's imports are not satisfactory. > >> > >> Reviewed-by: Martijn Coenen <maco@xxxxxxxxxxx> > >> Signed-off-by: Matthias Maennich <maennich@xxxxxxxxxx> > >> --- > >> init/Kconfig | 14 ++++++++++++++ > >> kernel/module.c | 11 +++++++++-- > >> 2 files changed, 23 insertions(+), 2 deletions(-) > >> > >> diff --git a/init/Kconfig b/init/Kconfig > >> index bd7d650d4a99..b3373334cdf1 100644 > >> --- a/init/Kconfig > >> +++ b/init/Kconfig > >> @@ -2119,6 +2119,20 @@ config MODULE_COMPRESS_XZ > >> > >> endchoice > >> > >> +config MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS > >> + bool "Allow loading of modules with missing namespace imports" > >> + default n > >> + help > >> + Symbols exported with EXPORT_SYMBOL_NS*() are considered exported in > >> + a namespace. A module that makes use of a symbol exported with such a > >> + namespace is required to import the namespace via MODULE_IMPORT_NS(). > >> + This option relaxes this requirement when loading a module. > > > >> While > >> + technically there is no reason to enforce correct namespace imports, > >> + it creates consistency between symbols defining namespaces and users > >> + importing namespaces they make use of. > > > >I'm confused by this sentence. It sounds like it's the opposite of > >what the config is doing? Can you please reword it for clarify? > > How about: > > Symbols exported with EXPORT_SYMBOL_NS*() are considered exported in > a namespace. A module that makes use of a symbol exported with such a > namespace is required to import the namespace via MODULE_IMPORT_NS(). > There is no technical reason to enforce correct namespace imports, > but it creates consistency between symbols defining namespaces and > users importing namespaces they make use of. This option relaxes this > requirement and lifts the enforcement when loading a module. That's a lot better. Especially moving the "This option relaxes..." to the bottom. Thanks. -Saravana