KernelNewbies
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Kernel Hacking

  • Frontpage

  • Kernel Hacking

  • Kernel Documentation

  • Kernel Glossary

  • FAQ

  • Found a bug?

  • Kernel Changelog

  • Upstream Merge Guide

Projects

  • KernelJanitors

  • KernelMentors

  • KernelProjects

Community

  • Why a community?

  • Regional Kernelnewbies

  • Personal Pages

  • Upcoming Events

References

  • Mailing Lists

  • Related Sites

  • Programming Links

Wiki

  • Recent Changes

  • Site Editors

  • Side Bar

  • Tips for Editors

  • Hosted by WikiWall

Navigation

  • RecentChanges
  • FindPage
  • HelpContents
Revision 13 as of 2025-06-16 13:37:24
KernelNewbies:
  • KernelProjects
  • modules

Linux kernel module support

This is an informal wiki to keep tabs on Linux kernel module support ongoing R&D and outstanding things.

Contents

  1. Linux kernel module support
  2. Previous pull requests
    1. 2025
    2. 2024
    3. 2023
    4. 2022
    5. 2021
    6. 2020
  3. Ongoing development
  4. TODO

Previous pull requests

This contains the list of changes sent to Linus. Although each pull request has its own documented set of changes we list a few highlights for each half of each year below. You can inspect these yourself using git log --merges --grep="Pull module".

2025

2025-01 - 2025-06

Sebastian Andrzej Siewior cleaned up the module code to use RCU instead of RCU-sched (v6.15-rc1).

Several important module changes were merged through the kbuild tree:

Matthew Maurer added support for extended modversions, allowing imported symbol names to be longer than 64 - sizeof(unsigned long) bytes. Sami Tolvanen implemented a new tool called gendwarfksyms to calculate CRCs of exported symbols from type information present in DWARF data, as opposed to genksyms which parses pre-processed source files. Both changes were implemented to enable modversions for Rust (v6.14-rc1).

Peter Zijlstra added support for module-specific symbol namespaces, allowing symbols to be exported only for use in selected modules (v6.16-rc1).

  • modules-v6.16-rc1 - 2024-06-02

  • modules-v6.15-rc6 - 2024-05-09

  • modules-v6.15-rc5 - 2024-04-30

  • modules-v6.15-rc1 - 2024-03-30

  • modules-v6.14-rc1 - 2024-01-26

2024

2024-07 - 2024-12

Luis Chamberlain added Petr Pavlu, Sami Tolvanen and Daniel Gomez as reviewers/co-maintainers. The maintainership of the modules tree began rotating among them every six months. Petr took over first, starting with the v6.13-rc5 pull request.

  • modules-v6.13-rc5 - 2024-12-23

  • modules-v6.13-rc1-v2 - 2024-11-29

  • modules-v6.13-rc1 - 2024-11-27

  • modules-v6.12-rc1 - 2024-09-28

  • modules-v6.11-rc1 - 2024-07-23

2024-01 - 2024-06

  • modules-v6.10-rc1 - 2024-05-15

  • modules-v6.9-rc1 - 2024-03-13

  • modules-v6.8-rc1 - 2024-01-10

2023

2023-07 - 2023-12

Christoph Hellwig's symbol_get() fix which points to that we should remove those hacks and remove that call. symbol_get() is just a hack to address things which should be fixed through Kconfig at build time as was done in the later patches, and so ultimately it should just be removed.

  • modules-v6.7-rc1 - 2023-11-01

  • modules-v6.6-rc1 - 2023-08-29

  • modules-v6.5-rc1 - 2023-06-28

  • modules-6.4-rc5-second-pull - 2023-06-01

2023-01 - 2023-06

Song Liu added a new struct module_memory replacement. Nick Alcock's removed MODULE_LICENSE() from non-modules. We proved vmalloc memory allocation abuse comes from systemd udev, we're wasting ~463 MiB per CPU lost prior to the first fix. After working with Linus on this he came up with a brilliant simple solution making duplicate requests idempotent.

  • modules-6.4-rc5-fixes-v2 - 2023-06-01

  • modules-6.4-rc5-fixes - 2023-05-30

  • modules-6.4-rc4 - 2023-05-03

  • modules-6.4-rc1-v2 - 2023-05-03

  • modules-v6-4-rc1 - 2023-04-27

  • modules-v6.3-rc1 - 2023-02-23

2022

2022-07 - 2022-12

Implication of misalignment of some sections were discussed, for .altinstructions and __bug_table sections, there should be no real ill effects unless you have a buggy exception handler and we ran into one on parisc. Stephen Boyd added zstd in-kernel decompression support but the only users of this would be folks using the load-pin LSM because otherwise we do module decompression in userspace.

  • modules-v6.2-rc1| - 2022-12-13

  • modules-v6.1-rc1 - 2022-10-10

  • modules-v6.0-rc1 - 2022-08-08

2022-01 - 2022-06

Luis starts maintaining as of the v5.17-rc1 pull request. The first order of business was to split up kernel/module.c into parts the modules-v5.17-rc1 merge request was the last one with the modules code all in one place. Aaron Tomlin did all the work, he also added CONFIG_MODULE_UNLOAD_TAINT_TRACKING. Christophe Leroy added CONFIG_ARCH_WANTS_MODULES_DATA_IN_VMALLOC which lets architectures to request having modules data in vmalloc area instead of module area.

  • modules-v5.19-rc1 - 2022-05-26

  • modules-v5.17-rc1 - 2022-01-17

2021

2021-07 - 2021-12

Jessica Yu is maintainer.

  • modules-v5.14-rc1 - 2021-07-07

2021-01 - 2021-06

  • modules-v5.13-rc1 - 2021-04-30

2020

2020-07 - 2020-12

  • modules-v5.11-rc1 - 2020-12-17

  • modules-v5.10-rc1 - 2020-10-22

  • modules-v5.9-rc1 - 2020-08-14

2020-01 - 2023-06

  • modules-v5.8-rc1 - 2020-06-05

  • modules-v5.7-rc1 - 2020-04-09

  • modules-v5.6-rc1 - 2020-01-31

Ongoing development

Things requiring more community eyeballs or maintainer review:

  • execmem_alloc() work to generalize bpf_prog_pack()
  • Rust patches for modules

TODO

Things which the maintainer or other developers can work on:

  • Add support for EXPORT_SYMBOL_FOR() to force restricting access to symbols only for certain modules

  • extend kdevops modules test to include kmod.git userspace tests
  • extend kdevops modules test to include the new stress-ng module stressor support
  • extend patchwork support to use kdevopes testing using all tests supported for incoming patches by certain developers, leverage the work eBPF folks have done
  • hookup kdevops modules testing with 0-day
  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01