How to Convert Legacy Kernel Modules for modern Kernels

Tianrui Wei tianrui at
Fri Jan 21 03:21:18 EST 2022

Hi Greg,

On 21 Jan 2022, at 15:51, Greg KH wrote:

> 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.

Thanks for telling me about the Linux back port project. It does seem very interesting.

>> 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.

This is a really good suggestion, and it's also the way I approach recent kernel modules. However some specifically ancient kernel modules is rather difficult to use this approach.

> 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?

The specific driver I had in mind is a PCIE driver for a Xilinx IP block. It's under in a zip folder called Everyone with a xilinx account could download the folder. Unfortunately its header claims it contains confidential information from Xilinx, as such I'm a bit wary to post it online.

> You can also always add it to the in-kernel drivers/staging/ area and have others help out with this effort.

Thanks for giving me information about the drivers/staging area! I'll try to upstream my future work there.

> good luck!
> greg k-h

Best Regards,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 866 bytes
Desc: OpenPGP digital signature
URL: <>

More information about the Kernelnewbies mailing list