Re: [RFC PATCH net-next 1/6] net: ethernet: implement OPEN Alliance control transaction interface

From: Andrew Lunn
Date: Tue Sep 12 2023 - 21:33:02 EST


> If I understand you correctly, this framework has to include the module
> initialization as well using the below APIs and has to be compiled as a
> loadable module so that other vendors module can make use of this, isn't it?
>
> module_init(oa_tc6_init);
> module_exit(oa_tc6_exit);

You should not need these, unless there is actions which need to be
taken when the module is loaded. If there are no actions, it is purely
a library, don't have them. The module dependency tracking code will
see that the MAC driver modules has dependencies on symbols in this
library module, and will load it first. The MAC driver is then loaded,
and the kernel linker will resolve the missing symbols in the MAC
driver to those in the library. It also means that there is only ever
one copy of the library in the kernel, even if there is multiple MAC
drivers using it.

Andrew