From: Peter Zijlstra <peterz@infradead.org>
To: mcgrof@kernel.org
Cc: x86@kernel.org, hpa@zytor.com, petr.pavlu@suse.com,
samitolvanen@google.com, da.gomez@samsung.com,
masahiroy@kernel.org, nathan@kernel.org, nicolas@fjasle.eu,
linux-kernel@vger.kernel.org, linux-modules@vger.kernel.org,
linux-kbuild@vger.kernel.org, hch@infradead.org,
gregkh@linuxfoundation.org,
Sean Christopherson <seanjc@google.com>
Subject: Re: [PATCH -v2 6/7] module: Account for the build time module name mangling
Date: Fri, 2 May 2025 15:15:47 +0200 [thread overview]
Message-ID: <20250502131547.GD4198@noisy.programming.kicks-ass.net> (raw)
In-Reply-To: <20241202150810.606849101@infradead.org>
On Mon, Dec 02, 2024 at 03:59:52PM +0100, Peter Zijlstra wrote:
> Sean noted that scripts/Makefile.lib:name-fix-token rule will mangle
> the module name with s/-/_/g.
>
> Since this happens late in the build, only the kernel needs to bother
> with this, the modpost tool still sees the original name.
>
> Reported-by: Sean Christopherson <seanjc@google.com>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
> ---
> kernel/module/main.c | 26 +++++++++++++++++++++++++-
> 1 file changed, 25 insertions(+), 1 deletion(-)
>
> --- a/kernel/module/main.c
> +++ b/kernel/module/main.c
> @@ -1062,6 +1062,30 @@ static char *get_modinfo(const struct lo
> }
>
> /*
> + * Like strncmp(), except s/-/_/g as per scripts/Makefile.lib:name-fix-token rule.
> + */
> +static int mod_strncmp(const char *str_a, const char *str_b, size_t n)
> +{
> + for (int i = 0; i < n; i++) {
> + char a = str_a[i];
> + char b = str_b[i];
> + int d;
> +
> + if (a == '-') a = '_';
> + if (b == '-') b = '_';
> +
> + d = a - b;
> + if (d)
> + return d;
> +
> + if (!a)
> + break;
> + }
> +
> + return 0;
> +}
> +
> +/*
> * @namespace ~= "MODULE_foo-*,bar", match @modname to 'foo-*' or 'bar'
> */
> static bool verify_module_namespace(const char *namespace, const char *modname)
> @@ -1086,7 +1110,7 @@ static bool verify_module_namespace(cons
> if (*sep)
> sep++;
>
> - if (strncmp(namespace, modname, len) == 0 && (glob || len == modlen))
> + if (mod_strncmp(namespace, modname, len) == 0 && (glob || len == modlen))
> return true;
Note that this is going to be a pain if we use glob_match(), because
then either all the patterns must already use '[-_]', or we need to
dynamically rewrite the glob.
Neither really appeals to me much.
Best to keep it simple.
next prev parent reply other threads:[~2025-05-02 13:16 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-02 14:59 [PATCH -v2 0/7] module: Strict per-modname namespaces Peter Zijlstra
2024-12-02 14:59 ` [PATCH -v2 1/7] module: Convert symbol namespace to string literal Peter Zijlstra
2024-12-02 15:15 ` Peter Zijlstra
2024-12-02 15:22 ` Greg KH
2024-12-02 19:33 ` Linus Torvalds
2024-12-03 19:19 ` Mark Brown
2024-12-03 22:06 ` Mark Brown
2024-12-04 1:11 ` Masahiro Yamada
2024-12-02 14:59 ` [PATCH -v2 2/7] module/modpost: Use for() loop Peter Zijlstra
2025-02-07 8:50 ` Masahiro Yamada
2025-02-07 16:38 ` Masahiro Yamada
2024-12-02 14:59 ` [PATCH -v2 3/7] module/modpost: Add basename helper Peter Zijlstra
2025-02-07 17:56 ` Masahiro Yamada
2024-12-02 14:59 ` [PATCH -v2 4/7] module: Add module specific symbol namespace support Peter Zijlstra
2025-02-07 16:22 ` Masahiro Yamada
2024-12-02 14:59 ` [PATCH -v2 5/7] module: Extend the MODULE_ namespace parsing Peter Zijlstra
2025-02-07 8:41 ` Masahiro Yamada
2025-05-02 13:10 ` Peter Zijlstra
2025-02-07 15:45 ` Masahiro Yamada
2025-05-02 13:11 ` Peter Zijlstra
2024-12-02 14:59 ` [PATCH -v2 6/7] module: Account for the build time module name mangling Peter Zijlstra
2024-12-06 18:35 ` Sean Christopherson
2025-05-02 13:15 ` Peter Zijlstra [this message]
2024-12-02 14:59 ` [PATCH -v2 7/7] module: Provide EXPORT_SYMBOL_GPL_FOR() helper Peter Zijlstra
2025-02-07 8:09 ` Masahiro Yamada
2024-12-02 17:36 ` [PATCH -v2 0/7] module: Strict per-modname namespaces Andi Kleen
2024-12-16 16:43 ` Petr Pavlu
2025-02-05 10:14 ` Petr Pavlu
2025-02-07 18:04 ` Masahiro Yamada
2025-05-02 11:55 ` Roy, Patrick
2025-05-02 12:55 ` Peter Zijlstra
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=20250502131547.GD4198@noisy.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=da.gomez@samsung.com \
--cc=gregkh@linuxfoundation.org \
--cc=hch@infradead.org \
--cc=hpa@zytor.com \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-modules@vger.kernel.org \
--cc=masahiroy@kernel.org \
--cc=mcgrof@kernel.org \
--cc=nathan@kernel.org \
--cc=nicolas@fjasle.eu \
--cc=petr.pavlu@suse.com \
--cc=samitolvanen@google.com \
--cc=seanjc@google.com \
--cc=x86@kernel.org \
/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.