How to Convert Legacy Kernel Modules for modern Kernels

Greg KH greg at
Fri Jan 21 02:51:01 EST 2022

On Thu, Jan 20, 2022 at 06:10:31PM +0800, Tianrui Wei wrote:
> Hi,
> I was wondering if there're any tools/scripts in Linux that'd help me
> to convert legacy kernel modules for using on a modern Linux (Kernel >
> 5.0) system?

It depends on the driver you wish to convert.  For wireless drivers,
there was the "linux backport project" that provided scripts and tools
to do this type of work.  For other subsystems, I do not think anyone
ever did so as it's both not that hard, and also very specific to the
code that you are trying to convert.

> If there're not out of box solutions, is there a way I could view the
> API changes in every subsystem clearly? For example, this particular
> commit[^1] shows the second return argument is being removed from
> ki_complete, and it took a lot of fishing down the lkml to do. Perhaps
> there is a simpler way?

Use git itself to track the changes in apis.  You can see all changes to
a .h file by doing:
	git log -p path/to/file
and then see where the api got changed.

It usually isn't that difficult to forward port a driver, but it all
depends on the age of the code, and what it actually does.  Do you have
a link to the code you wish to drag forward?  You can also always add it
to the in-kernel drivers/staging/ area and have others help out with
this effort.

good luck!

greg k-h

More information about the Kernelnewbies mailing list