All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luis Chamberlain <mcgrof@kernel.org>
To: Saravana Kannan <saravanak@google.com>,
	Linus Torvalds <torvalds@linux-foundation.org>
Cc: Aaron Tomlin <atomlin@redhat.com>,
	christophe.leroy@csgroup.eu, cl@linux.com, mbenes@suse.cz,
	akpm@linux-foundation.org, jeyu@kernel.org,
	linux-kernel@vger.kernel.org, linux-modules@vger.kernel.org,
	void@manifault.com, atomlin@atomlin.com, allen.lkml@gmail.com,
	joe@perches.com, msuchanek@suse.de, oleksandr@natalenko.name,
	jason.wessel@windriver.com, pmladek@suse.com,
	daniel.thompson@linaro.org, hch@infradead.org,
	kernel-team@android.com
Subject: Re: [PATCH v12 01/14] module: Move all into module/
Date: Thu, 2 Jun 2022 12:14:58 -0700	[thread overview]
Message-ID: <YpkMMg8rskMRXfXS@bombadil.infradead.org> (raw)
In-Reply-To: <20220602034111.4163292-1-saravanak@google.com>

On Wed, Jun 01, 2022 at 08:41:11PM -0700, Saravana Kannan wrote:
> Aaron Tomlin <atomlin@redhat.com> wrote:
> > No functional changes.
> 
> I could be mistaken, but I think this has a functional change and could
> break module signature enforcement in some cases.
> 
> > 
> > This patch moves all module related code into a separate directory,
> > modifies each file name and creates a new Makefile. Note: this effort
> > is in preparation to refactor core module code.
> > 
> > Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> > Signed-off-by: Aaron Tomlin <atomlin@redhat.com>
> > ---
> >  MAINTAINERS                                         |  2 +-
> >  kernel/Makefile                                     |  5 +----
> >  kernel/module/Makefile                              | 12 ++++++++++++
> >  kernel/{module_decompress.c => module/decompress.c} |  2 +-
> >  kernel/{module-internal.h => module/internal.h}     |  0
> >  kernel/{module.c => module/main.c}                  |  2 +-
> >  kernel/{module_signing.c => module/signing.c}       |  2 +-
> 
> I spent at least an hour trying to figure out how the code below in
> module/signing.c (was moved from module/main.c in a later patch in this
> series) managed to have a "module" prefix for "module.sig_enforce" kernel
> cmdline param and for the /sys/module/module/parameters/sig_enforce file.
> 
> static bool sig_enforce = IS_ENABLED(CONFIG_MODULE_SIG_FORCE);
> module_param(sig_enforce, bool_enable_only, 0644);
> 
> I thought I was missing something until I realized this was a very recent
> change and might actually be a bug. If I'm not mistaken, the prefix will
> now become "signing". So the kernel cmdline param would get ignore and any
> userspace writes to /sys/module/module/parameters/sig_enforce will start
> failing.
> 
> I don't have a device to boot 5.19-rcX in, but I think I'm right. Can
> someone confirm?
> 
> If my code analysis is right, then the fix seems to be adding this code
> before the module_param() line.
> 
> diff --git a/kernel/module/signing.c b/kernel/module/signing.c
> index 85c8999dfecf..6b0672e4417b 100644
> --- a/kernel/module/signing.c
> +++ b/kernel/module/signing.c
> @@ -16,6 +16,11 @@
>  #include <uapi/linux/module.h>
>  #include "internal.h"
>  
> +#ifdef MODULE_PARAM_PREFIX
> +#undef MODULE_PARAM_PREFIX
> +#endif
> +#define MODULE_PARAM_PREFIX "module."
> +
>  static bool sig_enforce = IS_ENABLED(CONFIG_MODULE_SIG_FORCE);
>  module_param(sig_enforce, bool_enable_only, 0644);

That fix would make sense, can you send a proper patch ?
The form:

#ifdef MODULE_PARAM_PREFIX                                                   
#undef MODULE_PARAM_PREFIX                                                   
#endif                                                                       
#define MODULE_PARAM_PREFIX "whatever."

Is surprisingly actuaclly quite common, later on we should add helper
to make these more well known. Right now this is obscure tribal
knowledge when splitting up files.

  Luis

  reply	other threads:[~2022-06-02 19:15 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-22 14:03 [PATCH v12 00/14] module: core code clean up Aaron Tomlin
2022-03-22 14:03 ` [PATCH v12 01/14] module: Move all into module/ Aaron Tomlin
2022-06-02  3:41   ` Saravana Kannan
2022-06-02 19:14     ` Luis Chamberlain [this message]
2022-06-02  3:56   ` [PATCH v1] module: Fix prefix for module.sig_enforce module param Saravana Kannan
2022-06-02 19:16     ` Luis Chamberlain
2022-06-02 19:40       ` Linus Torvalds
2022-06-02 21:47         ` Saravana Kannan
2022-06-02 22:59           ` Luis Chamberlain
2022-06-03  3:48             ` Saravana Kannan
2022-06-03  4:30               ` Randy Dunlap
2022-06-02 19:35     ` Aaron Tomlin
2022-03-22 14:03 ` [PATCH v12 02/14] module: Simple refactor in preparation for split Aaron Tomlin
2022-03-22 14:03 ` [PATCH v12 03/14] module: Make internal.h and decompress.c more compliant Aaron Tomlin
2022-03-22 14:03 ` [PATCH v12 04/14] module: Move livepatch support to a separate file Aaron Tomlin
2022-03-22 14:03 ` [PATCH v12 05/14] module: Move latched RB-tree " Aaron Tomlin
2022-03-22 14:03 ` [PATCH v12 06/14] module: Move strict rwx " Aaron Tomlin
2022-03-22 14:03 ` [PATCH v12 07/14] module: Move extra signature support out of core code Aaron Tomlin
2022-03-22 14:03 ` [PATCH v12 08/14] module: Move kmemleak support to a separate file Aaron Tomlin
2022-03-22 14:03 ` [PATCH v12 09/14] module: Move kallsyms support into " Aaron Tomlin
2022-03-22 14:03 ` [PATCH v12 10/14] module: kallsyms: Fix suspicious rcu usage Aaron Tomlin
2022-03-22 14:03 ` [PATCH v12 11/14] module: Move procfs support into a separate file Aaron Tomlin
2022-03-22 14:03 ` [PATCH v12 12/14] module: Move sysfs " Aaron Tomlin
2022-03-22 14:03 ` [PATCH v12 13/14] module: Move kdb module related code out of main kdb code Aaron Tomlin
2022-03-22 14:03 ` [PATCH v12 14/14] module: Move version support into a separate file Aaron Tomlin
2022-03-22 15:41 ` [PATCH v12 00/14] module: core code clean up Michal Suchánek
2022-03-22 17:23 ` Luis Chamberlain

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=YpkMMg8rskMRXfXS@bombadil.infradead.org \
    --to=mcgrof@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=allen.lkml@gmail.com \
    --cc=atomlin@atomlin.com \
    --cc=atomlin@redhat.com \
    --cc=christophe.leroy@csgroup.eu \
    --cc=cl@linux.com \
    --cc=daniel.thompson@linaro.org \
    --cc=hch@infradead.org \
    --cc=jason.wessel@windriver.com \
    --cc=jeyu@kernel.org \
    --cc=joe@perches.com \
    --cc=kernel-team@android.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-modules@vger.kernel.org \
    --cc=mbenes@suse.cz \
    --cc=msuchanek@suse.de \
    --cc=oleksandr@natalenko.name \
    --cc=pmladek@suse.com \
    --cc=saravanak@google.com \
    --cc=torvalds@linux-foundation.org \
    --cc=void@manifault.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.