[PATCH v9 00/10] Generate modules.builtin.alias from match ids

From: Allen Webb
Date: Mon Dec 19 2022 - 15:46:28 EST


Generate modules.builtin.alias from match ids

This patch series (v8) generates `modules.builtin.alias` during modpost.
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.

Also included in this series are added documentation, style fixes and
fixes for build breakages for built-in modules that relied on
MODULE_DEVICE_TABLE being a no-op. Some of these were typos in the
device table name and one ifdef-ed out the device table.

--

# Generate modules.builtin.alias from match ids

This series (v8) adds missing `cc:stable` and `fixes:` commit tags to
the relevant commits. It is unlikely these drivers were being built as
modules because compilation would have failed. It also updates the build
documentation to cover `modules.builtin.alias`.

Note, cover letters were first added in v5.

RFC (broken patch): https://lore.kernel.org/lkml/CAJzde042-M4UbpNYKw0eDVg4JqYmwmPYSsmgK+kCMTqsi+-2Yw@xxxxxxxxxxxxxx/
v1 (missing v1 label): https://lore.kernel.org/lkml/20221111152852.2837363-1-allenwebb@xxxxxxxxxx/
v2 (missing v2 label): https://lore.kernel.org/lkml/20221128201332.3482092-1-allenwebb@xxxxxxxxxx/
v3: https://lore.kernel.org/lkml/20221129224313.455862-1-allenwebb@xxxxxxxxxx/
v4: https://lore.kernel.org/lkml/20221130221447.1202206-1-allenwebb@xxxxxxxxxx/
v5: https://lore.kernel.org/lkml/20221201211630.101541-1-allenwebb@xxxxxxxxxx/
v6: https://lore.kernel.org/lkml/20221202224540.1446952-1-allenwebb@xxxxxxxxxx/
v7: https://lore.kernel.org/lkml/20221216221703.294683-1-allenwebb@xxxxxxxxxx/
v8: https://lore.kernel.org/lkml/20221219191855.2010466-1-allenwebb@xxxxxxxxxx/
v9: This version

## Patch series status

This series is still going through revisions in response to comments.

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, Christophe Leroy, Luis Chamberlain and the
other 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@xxxxxxxxx> for catching
issues that showed up on different kernel configurations.


Allen Webb (10):
imx: Fix typo
rockchip-mailbox: Fix typo
scsi/BusLogic: Always include device id table
stmpe-spi: Fix typo
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
Documentation: Include modules.builtin.alias

.gitignore | 1 +
Documentation/kbuild/kbuild.rst | 6 ++
Makefile | 1 +
drivers/mailbox/rockchip-mailbox.c | 2 +-
drivers/mfd/stmpe-spi.c | 2 +-
drivers/scsi/BusLogic.c | 2 -
drivers/soc/imx/imx8mp-blk-ctrl.c | 2 +-
include/linux/module.h | 15 ++++-
scripts/Makefile.modpost | 17 +++++-
scripts/mod/file2alias.c | 94 +++++++++++++++++++++++-------
scripts/mod/modpost.c | 23 +++++++-
scripts/mod/modpost.h | 2 +
12 files changed, 137 insertions(+), 30 deletions(-)

--
2.37.3