]> www.infradead.org Git - users/hch/misc.git/commit
Merge patch series "Add generated modalias to modules.builtin.modinfo"
authorNathan Chancellor <nathan@kernel.org>
Wed, 24 Sep 2025 16:10:54 +0000 (09:10 -0700)
committerNathan Chancellor <nathan@kernel.org>
Wed, 24 Sep 2025 16:10:54 +0000 (09:10 -0700)
commitc7d3dd9163e6095b2d4d000433ccdc166c33aa3c
tree15c4bb0bd92dc8bebe00c30921e2b6e0ea077f22
parent95ee3364b29313a7587b7d1e42a9d043aaf7e592
parent3328d39a8dca2d6ed27197a0025df7540b99adf2
Merge patch series "Add generated modalias to modules.builtin.modinfo"

Alexey Gladkov says:

The modules.builtin.modinfo file is used by userspace (kmod to be specific) to
get information about builtin modules. Among other information about the module,
information about module aliases is stored. This is very important to determine
that a particular modalias will be handled by a module that is inside the
kernel.

There are several mechanisms for creating modalias for modules:

The first is to explicitly specify the MODULE_ALIAS of the macro. In this case,
the aliases go into the '.modinfo' section of the module if it is compiled
separately or into vmlinux.o if it is builtin into the kernel.

The second is the use of MODULE_DEVICE_TABLE followed by the use of the
modpost utility. In this case, vmlinux.o no longer has this information and
does not get it into modules.builtin.modinfo.

For example:

$ modinfo pci:v00008086d0000A36Dsv00001043sd00008694bc0Csc03i30
modinfo: ERROR: Module pci:v00008086d0000A36Dsv00001043sd00008694bc0Csc03i30 not found.

$ modinfo xhci_pci
name:           xhci_pci
filename:       (builtin)
license:        GPL
file:           drivers/usb/host/xhci-pci
description:    xHCI PCI Host Controller Driver

The builtin module is missing alias "pci:v*d*sv*sd*bc0Csc03i30*" which will be
generated by modpost if the module is built separately.

To fix this it is necessary to add the generated by modpost modalias to
modules.builtin.modinfo. Fortunately modpost already generates .vmlinux.export.c
for exported symbols. It is possible to add `.modinfo` for builtin modules and
modify the build system so that `.modinfo` section is extracted from the
intermediate vmlinux after modpost is executed.

Link: https://patch.msgid.link/cover.1758182101.git.legion@kernel.org
Signed-off-by: Nathan Chancellor <nathan@kernel.org>