On Tue, Nov 03, 2026 at 10:01:28PM +0000, [email protected] wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) 
> to consider:
> - [Low] module: missing kernel-parameters.txt update for module_blacklist=
> --
> 
> commit b07237b9f1588393358dd2a97ba3add75969d76b
> Author: Aaron Tomlin <[email protected]>
> 
> module: Extend module_blacklist parameter to built-in modules
> 
> This commit extends the module_blacklist= command-line parameter to built-in
> modules by recording their initcall functions and module names in a
> .initcall.modnames section. During early boot, do_one_initcall_builtin()
> checks this table and skips initcalls for blacklisted built-in modules, with
> parameter handling moved to init/main.c so it also works when CONFIG_MODULES
> is disabled.
> 
> > diff --git a/init/main.c b/init/main.c
> > index d7bf1ffc5f503..99df129d3b296 100644
> > --- a/init/main.c
> > +++ b/init/main.c
> > @@ -1406,6 +1406,56 @@ static inline void do_trace_initcall_level(const 
> > char *level)
> >  }
> >  #endif /* !TRACEPOINTS_ENABLED */
> >  
> > +extern struct initcall_modname __start_initcall_modnames[];
> > +extern struct initcall_modname __stop_initcall_modnames[];
> > +
> > +/* module_blacklist is a comma-separated list of module names */
> > +static char *module_blacklist;
> > +bool __init_or_module module_is_blacklisted(const char *module_name)
> > +{
> > +   const char *p;
> > +   size_t len;
> > +
> > +   if (!module_blacklist)
> > +           return false;
> > +
> > +   for (p = module_blacklist; *p; p += len) {
> > +           len = strcspn(p, ",");
> > +           if (strlen(module_name) == len && parameqn(module_name, p, len))
> > +                   return true;
> > +           if (p[len] == ',')
> > +                   len++;
> > +   }
> > +   return false;
> > +}
> > +core_param(module_blacklist, module_blacklist, charp, 0400);
> 
> [Severity: Low]
> This patch moves core_param(module_blacklist, ...) to init/main.c and extends
> module_blacklist= via do_one_initcall_builtin() so that it also skips
> initcalls for built-in modules defined with module_init(), even when
> CONFIG_MODULES=n.
> 
> However, Documentation/admin-guide/kernel-parameters.txt still describes
> module_blacklist= only in terms of loading modules:
> 
>       module_blacklist=  [KNL] Do not load a comma-separated list of
>                       modules.  Useful for debugging problem modules.
> 
> The follow-up patch in the series (commit 7bf71ba917d2 ("module: Rename
> module_blacklist to module_denylist")) renames the entry to module_denylist=
> without updating this description either.
> 
> Should Documentation/admin-guide/kernel-parameters.txt be updated here to
> mention that module_blacklist= also skips initialization of built-in modules?

Hi Andrew,

Acknowledged.

I will update Documentation/admin-guide/kernel-parameters.txt in this patch
to note that module_blacklist= prevents loading or initialising both
loadable and built-in modules, and carry that updated description forward
to module_denylist= in the subsequent patch.

Kind regards,
-- 
Aaron Tomlin

Reply via email to