All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lucas De Marchi <lucas.de.marchi@gmail.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: linux-modules <linux-modules@vger.kernel.org>,
	"Michal Suchánek" <msuchanek@suse.cz>
Subject: Re: [PATCH] modinfo: don't parse built-in for explicitly given module files
Date: Wed, 18 Aug 2021 12:13:24 -0700	[thread overview]
Message-ID: <CAKi4VAJVvY3=JdSZm-GD1hJqyCPYaYz-jBJ_REeY5BakVb6_ww@mail.gmail.com> (raw)
In-Reply-To: <20210818112203.24863-1-tiwai@suse.de>

On Wed, Aug 18, 2021 at 4:23 AM Takashi Iwai <tiwai@suse.de> wrote:
>
> A recent bug report showed that modinfo doesn't give the signature
> information for certain modules, and it turned out to happen only on
> the modules that are built-in on the running kernel; then modinfo
> skips the signature check, as if the target module file never exists.
> The behavior is, however, inconsistent when modinfo is performed for
> external modules (no matter which kernel version is) and the module
> file path is explicitly given by a command-line argument, which
> guarantees the presence of the module file itself.
>
> This patch addresses the regression by checking the presence of the
> module path at first before checking the built-in module.
>
> Fixes: e7e2cb61fa9f ("modinfo: Show information about built-in modules")
> BugLink: https://bugzilla.opensuse.org/show_bug.cgi?id=1189537
> Signed-off-by: Takashi Iwai <tiwai@suse.de>
> ---
>  libkmod/libkmod-module.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c
> index 6e0ff1a99604..9e878a5345a1 100644
> --- a/libkmod/libkmod-module.c
> +++ b/libkmod/libkmod-module.c
> @@ -2292,7 +2292,8 @@ KMOD_EXPORT int kmod_module_get_info(const struct kmod_module *mod, struct kmod_
>         assert(*list == NULL);
>
>         /* remove const: this can only change internal state */
> -       if (kmod_module_is_builtin((struct kmod_module *)mod)) {
> +       if (!kmod_module_get_path(mod) &&
> +           kmod_module_is_builtin((struct kmod_module *)mod)) {

thanks for spotting this... but I'm not sure this is the right fix.
kmod_module_is_builtin() shouldn't return true if the module was
created by path rather than lookup. It seems we should rather set
mod->builtin = KMOD_MODULE_BUILTIN_NO in
kmod_module_new_from_path(). This would also fix the use of
kmod_module_is_builtin() directly by applications.

Since the builtin check uses lazy initialization,  the default is
KMOD_MODULE_BUILTIN_UNKNOWN, hence the bug here.

Lucas De Marchi

>                 count = kmod_builtin_get_modinfo(mod->ctx,
>                                                 kmod_module_get_name(mod),
>                                                 &strings);
> --
> 2.26.2
>

  parent reply	other threads:[~2021-08-18 19:13 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-18 11:22 [PATCH] modinfo: don't parse built-in for explicitly given module files Takashi Iwai
2021-08-18 11:41 ` Michal Suchánek
2021-08-18 12:05 ` Petr Vorel
2021-08-18 19:13 ` Lucas De Marchi [this message]
2021-08-18 20:52   ` [PATCH] libkmod: Set builtin to no when module is created from path Michal Suchanek
2021-08-18 21:23     ` Lucas De Marchi
2021-08-18 21:24     ` [PATCH v2] " Lucas De Marchi
2021-08-18 21:24       ` [PATCH] " Lucas De Marchi
2021-08-19 15:28       ` [PATCH v2] " Petr Vorel

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='CAKi4VAJVvY3=JdSZm-GD1hJqyCPYaYz-jBJ_REeY5BakVb6_ww@mail.gmail.com' \
    --to=lucas.de.marchi@gmail.com \
    --cc=linux-modules@vger.kernel.org \
    --cc=msuchanek@suse.cz \
    --cc=tiwai@suse.de \
    /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.