[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20221216221703.294683-1-allenwebb@google.com>
Date: Fri, 16 Dec 2022 16:16:58 -0600
From: Allen Webb <allenwebb@...gle.com>
To: "linux-modules@...r.kernel.org" <linux-modules@...r.kernel.org>,
"linux-usb@...r.kernel.org" <linux-usb@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Cc: Luis Chamberlain <mcgrof@...nel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
"Rafael J. Wysocki" <rafael@...nel.org>,
Allen Webb <allenwebb@...gle.com>
Subject: [PATCH v7 0/5] Generate modules.builtin.alias from match ids
Generate modules.builtin.alias from match ids
This patch series (v7) pivots to adding `modules.builtin.alias` from the
previous approach of adding a sysfs attribute. The goal is for tools
like USBGuard to leverage not only modules.aliases but also
`modules.builtin.aliases` to associate devices with the modules that may
be bound before deciding to authorize a device or not. This is
particularly useful in cases when new devices of a particular type
shouldn't be allowed part of the time like for lock screens.
Note that `modules.builtin.alias` is generated directly by modpost. This
differs from how `modules.alias` is generated because modpost converts
the match-id based module aliases into c-files that add additional
aliases to the module info. No such c-file is present for vmlinuz though
it would be possible to add one. A downside of this would be vmlinuz
would grow by 100-200kb for a typical ChromeOS kernel config.
--
# Generate modules.builtin.alias from match ids
Previous versions of this patch series addressed the same problem by
adding a sysfs attribute instead of `modules.builtin.alias`.
Consequently, they have a different name and include completely
different commits than this version.
Note, cover letters were first added in v5.
RFC (broken patch): https://lore.kernel.org/lkml/CAJzde042-M4UbpNYKw0eDVg4JqYmwmPYSsmgK+kCMTqsi+-2Yw@mail.gmail.com/
v1 (missing v1 label): https://lore.kernel.org/lkml/20221111152852.2837363-1-allenwebb@google.com/
v2 (missing v2 label): https://lore.kernel.org/lkml/20221128201332.3482092-1-allenwebb@google.com/
v3: https://lore.kernel.org/lkml/20221129224313.455862-1-allenwebb@google.com/
v4: https://lore.kernel.org/lkml/20221130221447.1202206-1-allenwebb@google.com/
v5: https://lore.kernel.org/lkml/20221201211630.101541-1-allenwebb@google.com/
v6: https://lore.kernel.org/lkml/20221202224540.1446952-1-allenwebb@google.com/
v7: This version
## Patch series status
This series is still going through revisions in response to comments.
This version generates match-id based aliases for all subsystems unlike
previous patch series versions which only implemented aliases for USB.
I believe there is potential to improve the Makefile part of the patch
series as well as an open question of whether modpost should generate
`modules.built.alias` directly or create a vmlinuz.mod.c containing the
missing module info for the match-id based aliases for built-in modules.
## Acknowledgements
Thanks to Greg Kroah-Hartman and the Linux maintainers for being patient
with me as I have worked through learning the kernel workflow to get
this series into a more presentable state.
Thanks to Luis Chamberlain for raising the alternative of using kmod to
address the primary motivation of the patch series.
Also, thanks to Intel's kernel test robot <lkp@...el.com> for catching
issues that showed up on different kernel configurations.
Allen Webb (5):
module.h: MODULE_DEVICE_TABLE for built-in modules
modpost: Track module name for built-in modules
modpost: Add -b option for emitting built-in aliases
file2alias.c: Implement builtin.alias generation
build: Add modules.builtin.alias
.gitignore | 1 +
Makefile | 1 +
include/linux/module.h | 10 ++++-
scripts/Makefile.modpost | 17 +++++++-
scripts/mod/file2alias.c | 92 +++++++++++++++++++++++++++++++---------
scripts/mod/modpost.c | 23 +++++++++-
scripts/mod/modpost.h | 2 +
7 files changed, 121 insertions(+), 25 deletions(-)
--
2.37.3
Powered by blists - more mailing lists