Skip to content

Add generated modalias to modules.builtin.modinfo

Alexey Gladkov linux-kbuild linux-modules linux-s390 linux-scsi lkml rust-for-linux 8 versions – Applied

Status from this message: Applied, thanks!

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v8 Latest8 patches 13 repliesApplied
  2. v78 patches 16 repliesSuperseded
  3. v69 patches 17 repliesApplied
Earlier versions · 5
VersionPostedPatchesRepliesStatus
v510 patches9 repliesSuperseded
v47 patches8 repliesSuperseded
v36 patches24 repliesSuperseded
v26 patches3 repliesSuperseded
v17 patches11 repliesApplied

Patches in v8 Applied

#Subject and filesSizeRepliesApplied
1/8s390: vmlinux.lds.S: Reorder sectionsarch/s390/kernel/vmlinux.lds.S+5 -50 replies
2/8kbuild: always create intermediate vmlinux.unstrippedscripts/Makefile.vmlinux+22 -230 replies
3/8kbuild: keep .modinfo section in vmlinux.unstrippedinclude/asm-generic/vmlinux.lds.h scripts/Makefile.vmlinux scripts/mksysmap+9 -31 reply
4/8kbuild: extract modules.builtin.modinfo from vmlinux.unstrippedscripts/Makefile.vmlinux scripts/Makefile.vmlinux_o+27 -250 replies
5/8scsi: Always define blogic_pci_tbl structuredrivers/scsi/BusLogic.c+1 -30 replies
6/8modpost: Add modname to mod_device_table aliasinclude/linux/module.h rust/kernel/device_id.rs scripts/mod/file2alias.c+29 -81 reply
7/8modpost: Create modalias for builtin modulesinclude/linux/module.h scripts/Makefile.vmlinux scripts/mksysmap +3 more+41 -68 replies
8/8kbuild: vmlinux.unstripped should always depend on .vmlinux.export.oscripts/Makefile.vmlinux scripts/link-vmlinux.sh+3 -111 reply

Reviews trailers per patch

All 8 patches have a Reviewed-by or Acked-by.

PatchHeiko CarstensNicolas SchierDamien Le MoalDanilo KrummrichStephen Rothwell
1/8A-b
2/8R-b
3/8R-b
4/8R-b
5/8R-b
6/8A-b A-b
7/8R-b T-b
8/8R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 5 reviewers.

Read the v8 thread

Cover letter [PATCH v8 0/8] Add generated modalias to modules.builtin.modinfo

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.

---
Notes:
- v8:
* Fix build warnings about unused variable.
* Fix objcopy "warning: empty loadable segment detected ...".
* v7: https://lore.kernel.org/all/[email protected]/

- v7:
* Reorder patches to avoid unnecessary linker warnings on s390.
* Drop the patch for pinctrl since it's already been applied.
* v6: https://lore.kernel.org/all/[email protected]/

- v6:
* Rebase to v6.17-rc1-16-g8742b2d8935f to pick up the fixes made by Masahiro Yamada.
* Fix an issue on i386 configs caused by the use of string_32.h.
* v5: https://lore.kernel.org/all/[email protected]/

- v5:
* Rebase to v6.16-rc6-281-gf4a40a4282f4 to pick up the fixes made by Masahiro Yamada.
* Attempt to fix linker warning on s390.
* Fix typo in pinctrl/meson found by the kernel test robot.
* v4: https://lore.kernel.org/all/[email protected]/

- v4:
* Rework the patchset based on top of Masahiro Yamada's patches.
* Add removal of unnecessary __mod_device_table__* symbols to avoid symbol table growth in vmlinux.
* rust code takes into account changes in __mod_device_table__*.
* v3: https://lore.kernel.org/all/[email protected]/

- v3:
* Add Reviewed-by tag to patches from Petr Pavlu.
* Rebase to v6.15.
* v2: https://lore.kernel.org/all/[email protected]/

- v2:
* Drop patch for mfd because it was already applied and is in linux-next.
* The generation of aliases for builtin modules has been redone as suggested by Masahiro Yamada.
* Rebase to v6.15-rc5-136-g9c69f8884904
* v1: https://lore.kernel.org/all/[email protected]/

Alexey Gladkov (5):
s390: vmlinux.lds.S: Reorder sections
scsi: Always define blogic_pci_tbl structure
modpost: Add modname to mod_device_table alias
modpost: Create modalias for builtin modules
kbuild: vmlinux.unstripped should always depend on .vmlinux.export.o

Masahiro Yamada (3):
kbuild: always create intermediate vmlinux.unstripped
kbuild: keep .modinfo section in vmlinux.unstripped
kbuild: extract modules.builtin.modinfo from vmlinux.unstripped

 arch/s390/kernel/vmlinux.lds.S    | 10 ++--
 drivers/scsi/BusLogic.c           |  4 +-
 include/asm-generic/vmlinux.lds.h |  2 +-
 include/linux/module.h            | 18 +++++--
 rust/kernel/device_id.rs          |  8 ++--
 scripts/Makefile.vmlinux          | 79 ++++++++++++++++++++-----------
 scripts/Makefile.vmlinux_o        | 26 +---------
 scripts/link-vmlinux.sh           |  5 +-
 scripts/mksysmap                  |  6 +++
 scripts/mod/file2alias.c          | 34 +++++++++++--
 scripts/mod/modpost.c             | 15 ++++++
 scripts/mod/modpost.h             |  2 +
 12 files changed, 131 insertions(+), 78 deletions(-)

base-commit: aa943a280e88e3585ed5a06d55e78c4123fcead3

Signature · 1 line
2.51.0